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
?