1,手工编码方式
利用手工编码方式建立“Hello Qt!”程序
第一步:
得到界面
2,无UI的向导方式
从图中,我们发现向导为窗口程序提供了3个基类,分别外QMainWindow、QWidget、QDialog,3个基类的区别如下:
QMainWindow类:提供一个有菜单栏、工具栏和一个状态栏的应用窗口模式
QWidget类:是所有用户界面对象的基类。它从窗口系统接收鼠标、键盘和其他事件,并且在屏幕上绘制增加。
QDialog类:是对话窗口的基类。对话框窗口的主要用于短期任务以及和用户进行简要通信的顶级窗口
工程建立完毕后,有4个文件。其中头文件dialog.h和源文件dialog.cpp共同实现了仅属于本项目的对话框类Dialog。类Dialog派生自Qt的基本对话框类QDialog。
3,Qt设计器方式
借助Qt设计器(Qt Designer)可以以所见即所得的方式构件GUI程序。
(1)设计区:就是正中间的部分,主要用来布置各个窗口部件。
(2)部件列表窗:这里分类罗列了各种常用的标准部件,可以使用鼠标将这些部件
拖人主设计区中,放到主设计区的界面上。
(3)对象查看器:这里列出了界面上所有部件的对象名称和父类,而且以树形结构
显示了各个部件的所属关系。可以在这里单击对象来选中某个部件。
(4)属性编辑器:这里显示了各个部件的常用属性信息,可以在这里更改部件的-
些属性,如大小、位置等。这些属性按照从祖先继承的属性、从父类继承的属性和自己的
属性的顺序进行了分类。
(5) Action(动作)编辑器、信号和槽编辑器:这些和菜单命令、控件事件响应等相关,
放到以后使用时再介绍。
(6)常用功能工具栏:该工具栏中前4个按钮用于进人相应的模式,分别是窗口部件编辑模式(这是默认模式)、信号/槽编辑模式、伙伴编辑模式和Tab顺序编辑模式。后面几个按钮用来实现添加布局管理器以及调整控件大小等功能。
第2步,在对话框中添加控件。
从部件列表窗中拖曳一个Label(标签)到主窗体中,可以在标签属性编辑器中修改字体、对齐方式等属性
生成编译结构的文件,根据自己的路径来寻找ui_dialog
/********************************************************************************
** Form generated from reading UI file 'dialog.ui'
**
** Created by: Qt User Interface Compiler version 5.3.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/#ifndef UI_DIALOG_H
#define UI_DIALOG_H#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>QT_BEGIN_NAMESPACEclass Ui_Dialog
{
public:QLabel *label;void setupUi(QDialog *Dialog){if (Dialog->objectName().isEmpty())Dialog->setObjectName(QStringLiteral("Dialog"));Dialog->resize(400, 300);label = new QLabel(Dialog);label->setObjectName(QStringLiteral("label"));label->setGeometry(QRect(170, 140, 111, 51));retranslateUi(Dialog);QMetaObject::connectSlotsByName(Dialog);} // setupUivoid retranslateUi(QDialog *Dialog){Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0));Dialog->setProperty("label", QVariant(QString()));
#ifndef QT_NO_ACCESSIBILITYlabel->setAccessibleName(QString());
#endif // QT_NO_ACCESSIBILITY
#ifndef QT_NO_ACCESSIBILITYlabel->setAccessibleDescription(QString());
#endif // QT_NO_ACCESSIBILITYlabel->setText(QApplication::translate("Dialog", "Hello Qt!", 0));} // retranslateUi};namespace Ui {class Dialog: public Ui_Dialog {};
} // namespace UiQT_END_NAMESPACE#endif // UI_DIALOG_H