Qt 基本知識(shí)
Base class
- QMainWindow:主窗口
- 菜單欄
- 工具欄
- 狀態(tài)欄
- QWidget:空白的窗口
- 所有界面組件的基類
- QDialog:對(duì)話框類
Hello World
- new project >>> Qt Widget Application
- qmake
- 后綴為 .pro
- 基類:QWidget
- Generate form 不要去掉 >>> 自動(dòng)生成 ui 文件
- Kit 一般使用第一個(gè)
- widget.ui 界面加個(gè) label 就行
- 可以在右下角進(jìn)行調(diào)整
GUI 程序設(shè)計(jì)基礎(chǔ)
GUI 程序結(jié)構(gòu)與運(yùn)行機(jī)制
- xxx.pro:qmake構(gòu)建系統(tǒng)的項(xiàng)目配置文件,儲(chǔ)存了各種項(xiàng)目設(shè)置
- main.cpp:主程序入口文件,實(shí)現(xiàn) main 函數(shù)
- widget.ui:使用 XML 格式描述元件及布局的界面文件
- widget.h:窗口類定義頭文件
- 用到了 .ui 文件
- widget.cpp:實(shí)現(xiàn)文件
qmake 配置文件中常見變量的含義(qmake Manual)
含義 | 變量 |
---|---|
QT | QT模塊列表,在用到某些模塊時(shí)需要手動(dòng)添加 |
CONFIG | 通用配置選項(xiàng) |
DEFINES | 預(yù)處理定義列表 |
TEMPLATE | 模板,是 app(應(yīng)用程序)還是 lib(庫) >>> 默認(rèn)為 app |
HEADERS | 頭文件列表 |
SOURCES | 源程序文件列表 |
FORMA | UI文件列表 |
RESOURCES | 資源文件(.qrc)列表 |
TARGET | 生成的可執(zhí)行文件名稱 >>> 默認(rèn)與項(xiàng)目同名 |
DESTDIR | 可執(zhí)行文件的存放路徑 |
INCLUDEPATH | 文件搜索路徑列表 |
DEPENDPATH | 其他依賴文件的搜索路徑列表 |
INSTALLS | 創(chuàng)建指向目錄的符號(hào)鏈接 |
qmake
- 構(gòu)建項(xiàng)目的軟件
- 根據(jù) .pro 文件生成 Makefile 文件
- C++ 編譯器根據(jù) Makefile 文件進(jìn)行編譯和鏈接
- 自動(dòng)生成 MOC (meta-object compiler) 和 UIC (user interface compiler) 生成構(gòu)建規(guī)則
- $$ 為替換函數(shù)的前綴
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc,char *argv[])
{
QApplication a(argc,argv); //定義并創(chuàng)建應(yīng)用程序
Widget w; //定義并創(chuàng)建窗口
w.show(); //顯式窗口
return a.exec(); //應(yīng)用程序運(yùn)行,開始消息循環(huán)和事件處理
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui //命名空間
{
class Widget; //從ui_widget.h文件里定義的類,外部聲明
}
class Widget : public QWidget
{
Q_OBJECT //宏,使用Qt信號(hào)與槽機(jī)制必須添加
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui; //Ui::Widget類型的一個(gè)指針,指向可視化的界面
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent):QWidget(parent),ui(new Ui::Widget)
{
ui->setupUi(this); //實(shí)現(xiàn)組件的各種設(shè)置、信號(hào)與槽的關(guān)聯(lián)
}
Widget::~Widget()
{
delete ui; //new了要回收
}
認(rèn)識(shí)信號(hào)槽
- 一個(gè) label 、一個(gè) push button
- 可以對(duì)兩者進(jìn)行適當(dāng)?shù)男薷?/li>
- 下方 Signals and Slots Editor
- 加號(hào)
- 發(fā)送者:push button
- 信號(hào):clicked()
- 接收者:Widget
- 槽:close()
- 可以按 F2 跳轉(zhuǎn)至 ui widget.h
Qt 項(xiàng)目構(gòu)建基本原理
- 可執(zhí)行文件
- << 標(biāo)準(zhǔn) C++ 編譯器 << 標(biāo)準(zhǔn) C++ 程序
- << MOC << Qt C++ 頭文件
- << UIC << 窗口 UI 文件
- << RCC << 資源文件
- << 標(biāo)準(zhǔn) C++ 編譯器 << 標(biāo)準(zhǔn) C++ 程序
- 元對(duì)象系統(tǒng)(meta-object system)
- 元對(duì)象編譯器(MOC)會(huì)對(duì)項(xiàng)目中的頭文件進(jìn)行預(yù)處理
文章來源地址http://www.zghlxwxcb.cn/news/detail-836125.html
文章來源:http://www.zghlxwxcb.cn/news/detail-836125.html
到了這里,關(guān)于Qt 基本知識(shí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!