关闭

QT4designer的使用

1660人阅读 评论(0) 收藏 举报

        直接使用代码来直接编写GUI无疑是非常痛苦的,好在QT提供了界面开发工具:QTdesigner。在QT的安装目录下的bin目录中,找到designer.exe,运行后就可以设计一个你所需要的QT程序界面。

       选择菜单file->new form,就会出现一个选择要创建表单类型的对话框,选择widget,然后点create按钮,就会出现一个设计状态的表单。在左边的widget box中选择Push Button,在上面点下左键按住不放拖动到设计表单上再松开左键,设计表单上就会新增一个Push Button。

       修改完表单以及Push Button的外观和大小后,可以试着增加事件响应,找到右边的Signal/Slot Editor窗口,在里面的+号上点一下,Signal/Slot Editor窗口的列表就会新增一项,然后双击新增项的sender列,选择pushButton;双击新增项的signal,选择clicked();双击新增项的Receiver,选择form;双击新增项的Slot,选择close()。

      完成以上工作后,保存表单。然后进入命令提示符模式,进入表单保存的目录,使用uic命令创建.H文件(要确保UIC.exe所在的目录在PATH环境变量中,UIC.exe在QT安装目录的bin目录下),命令格式如下:

       UIC -o 头文件名 UI文件名

      其中头文件名是你要输出的.h文件的名字,UI文件名就是刚才designer保存的表单文件的名字,例如:

      UIC -o form.h form.ui  就是将保存的form.ui输出form.h文件。

      需要注意的是,在QT3中使用例如UIC -o form.cpp -i form.h form.ui这样的方式来生成表单的CPP文件,但在QT4中,UIC已经作了修改,不能输出表单的CPP文件。

     打开输出的头文件,可以看到建立的表单类的状况,我的示例的头文件内容如下:

 #ifndef FORM_H
#define FORM_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QPushButton>
#include <QtGui/QWidget>

class Ui_Form
{
public:
    QPushButton *pushButton;

    void setupUi(QWidget *Form)
    {
    if (Form->objectName().isEmpty())
        Form->setObjectName(QString::fromUtf8("Form"));
    Form->resize(400, 300);
    pushButton = new QPushButton(Form);
    pushButton->setObjectName(QString::fromUtf8("pushButton"));
    pushButton->setGeometry(QRect(40, 230, 75, 23));

    retranslateUi(Form);
    QObject::connect(pushButton, SIGNAL(clicked()), Form, SLOT(close()));

    QMetaObject::connectSlotsByName(Form);
    } // setupUi

    void retranslateUi(QWidget *Form)
    {
    Form->setWindowTitle(QApplication::translate("Form", "Form", 0, QApplication::UnicodeUTF8));
    pushButton->setText(QApplication::translate("Form", "PushButton", 0, QApplication::UnicodeUTF8));
    Q_UNUSED(Form);
    } // retranslateUi

};

namespace Ui {
    class Form: public Ui_Form {};
} // namespace Ui

#endif // FORM_H

      运行DEV,新建一个Empty project,将头文件添加到工程中,然后修改main.cpp,我的示例中main.cpp源码如下:

#include <qapplication.h>
#include <qwidget.h>
#include <QPushButton.h>
#include "form.h"
int main(int argc, char **argv)
{
        QApplication app(argc, argv);

        QWidget w;
        Ui::Form ui;
        ui.setupUi(&w);

        w.show();
        return app.exec();

}
    编译,然后运行,刚刚设计出来的表单就会运行出来,点击Push Button,程序就会退出,这是在设计时Push Button响应关联到form的close的结果。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:46448次
    • 积分:644
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:0篇
    • 译文:0篇
    • 评论:16条
    文章分类
    最新评论