1、 设计好界面,保存到一个指定的文件夹form,保存为的文件名称为formdialog.ui(*.ui文件是一个基于XML格式的文件),界面显示如下:
SelectCheckBox1按钮的objectName属性为:pushButton1;
SelectCheckBox2按钮的objectName属性为:pushButton2;
SelectCheckBox3按钮的objectName属性为:pushButton3;
SelectAll按钮的objectName属性为:pushButton4;
CheckBox1复选框的objectName属性为:checkBox1;
CheckBox2复选框的objectName属性为:checkBox2;
CheckBox3复选框的objectName属性为:checkBox3;
2、 建立自己的类文件( form.h from.cpp ):
form.h
#ifndef MYFORM_H #define MYFORM_H #include <QDialog> #include "ui_form.h" class Form : public QDialog, public Ui::Form { Q_OBJECT public: Form(QWidget *parent = 0); //自定义槽 private slots: void on_pushButton4_clicked(); }; #endif
|
from.cpp
#include <QtGui> #include "form.h"
Form::Form(QWidget *parent) : QDialog(parent) { setupUi(this); connect(pushButton1, SIGNAL(clicked()), checkBox1, SLOT(toggle())); connect(pushButton2, SIGNAL(clicked()), checkBox2, SLOT(toggle())); connect(pushButton3, SIGNAL(clicked()), checkBox3, SLOT(toggle())); } //自定义槽 void Form::on_pushButton4_clicked() { connect(pushButton4, SIGNAL(clicked()), checkBox1, SLOT(toggle())); connect(pushButton4, SIGNAL(clicked()), checkBox2, SLOT(toggle())); connect(pushButton4, SIGNAL(clicked()), checkBox3, SLOT(toggle())); } |
在这个自定义的类里面,对用Qt Designer设计的界面进行完善,添加一些自己定义的signals and slots(共享版本的QT4,用Designer无法自定义信号和槽,所以得在自定义的类里面添加;对Ui_form.h文件的说明见后面的补充材料).
3、 建立main.cpp文件,调用上面这个自定义的类:
main.cpp
#include <QApplication> #include "form.h"
int main(int argc, char *argv[]) { QApplication app(argc, argv); Form *form = new Form; form->show(); return app.exec(); } |
4、 经过以上步骤后,在得到如下几个文件:
form.ui form.cpp form.h main.cpp
打开QT Command prompt控制台,切换到保存.ui文件的那个目录下面,先后输入一下命令:
qmake –project
qmake form.pro
make
5、 经过以上的步骤后,在form文件夹下面,得到以下一系列文件:
6、 在release文件夹下面,得到可执行文件“form.exe” ,运行该文件:
补充1:
ui_form.h 头文件里面的内容,类似于下面这种形式:
#ifndef UI_FORM_H #define UI_FORM_H
#include <QtCore/QVariant> #include <QtGui/QAction> #include <QtGui/QApplication> #include <QtGui/QButtonGroup> ......
class Ui_Form { public: QWidget *layoutWidget; QGroupBox *groupBox; QHBoxLayout *hboxLayout; QVBoxLayout *vboxLayout; QCheckBox *checkBox1; QPushButton *pushButton1; …… void setupUi(QWidget *Form) { ........ } // setupUi
void retranslateUi(QWidget *Form) { ........ } // retranslateUi }; namespace Ui { class Form: public Ui_Form {}; } // namespace Ui #endif // UI_FORM_H |
1. ui_form.h是uic自动生成的代码,用户通过Qt Designer设计的界面,保存在一个文件 "***.ui" 里面;
2. 打开QT Command prompt控制台,切换到保存.ui文件的那个目录下面,然后运行命令:
uic form.ui > ui_form.h
将得到对应于该界面的一个类“class Ui_Form”,自动生成的类都带一个前缀“Ui_”;
3. The class declares member variables that store the form's child widgets and layouts,
and a setupUi() function that initializes the form.