読み込んでいます...
2010年01月3日

在Qt中我们可以很容易的用C++做UI,还可以制作窗口,但是我们还需要自己为相应的窗口编写类和对象,例如我有一个很简单的需求,就是打开菜单栏然后弹出一个新窗口,在VC里可能比较麻烦,但是在Qt里面还是很容易的,我们只需要几个步骤就能够写一个新窗口,而UI可以直接使用CSS的思想方式去做设计。

首先我们可以用设计器设计一个窗体如下。我们可以新建一个名称为author的ui文件,这样我们就能够使用设计器设计窗体了。

我们设计完成后,就需要编写类来实现这个窗口的实例,首先我们是打开菜单栏来打开的,操作如下(MainWindow的设计我就不写了)。

当我们点击了Author的时候,会打开我们的作者窗体,我们可以在MainWindow下写上如下代码。

void MainWindow::OpenAuthorWindow()
{
    AuthorWindow
*authorWindow = new AuthorWindow();
    authorWindow
->show();
}

上面的代码就是打开AuthorWindow,逻辑很简单,就不多说了。我们现在就写一个实例类的代码。

创建authorwindow.h头文件并编写如下代码,为何这样写我已经写在注释里了。

#ifndef AUTHORWINDOW_H
#define AUTHORWINDOW_H
//窗体继承自QDialog
#include <QDialog>
//使用在Ui类中的Dialog类
//具体可以看生成的ui_author.h
namespace Ui
{
    
class Dialog;
}
//写构造函数和析构函数
class AuthorWindow:public QDialog
{
public:
    AuthorWindow(QWidget
*parent=0);
    
~AuthorWindow();
private:
   
//私有的窗体对象
   
//我们在代码中会通过该对象操作窗体元素
    Ui::Dialog *ui;
};

#endif // AUTHORWINDOW_H

写完了头文件之后,我们就需要写实例的文件。实例类文件不是很难,但是要注意构造函数的写法。 

#include "authorwindow.h"
#include
"ui_author.h"
//构造函数
AuthorWindow::AuthorWindow(QWidget *parent) :
        QDialog(parent),
        ui(
new Ui::Dialog)
{
    //初始化UI
    ui->setupUi(this);
}

AuthorWindow::~AuthorWindow()
{
    delete ui;
}

上面的代码很简单,这样我们就给我们的窗体编写了一个实例的类,这里有几点是要注意的。

  1. 在编写头文件的时候,要写一个命名空间为UI的命名空间,其中的类名字要和设计器生成的代码的类名相同。
  2. 窗体的实例类需要一个内部的ui的私有变量,或者叫任何名字都行,但是需要一个操作内部的UI的对象。
  3. 2中的ui对象必须是1中的命名空间的Wrapper类的实例。

上面的这三点还需要自己去看代码,否则刚刚上手还是会比较难理解。

HelloChan.zip (274.67 kb)

295路过 0评论 QT 阅读全文..

:-D :-? 8) :cry: 8-O :lol: :-x :-| :?: :-P :oops: :roll: :( :) :-o :wink: more »