Qt入門系列教程
概述:本文所有程式都是基于Qt5.9.0撰寫的,用的是Qt自帶的Qt Creator編譯器,移植程式時需要注意版本,有問題的可以留言交流,本作者原意幫助大家解決各種版本Qt程式移植的問題,歡迎大家多對留言交流,共同進步,
1.Hello Qt
新建一個空的工程,然后往工程里面添加main.cpp檔案,首先,我們從一個簡單的Qt程式開始,一行一行的研究代碼,其中.pro檔案如下:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = demo_01
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp
HEADERS +=
逐行解釋:
QT += core gui:需要參考工程的模塊,core表示核心模塊,gui表示界面模塊,Qt的代碼都是模塊化方式組織的,如果你想引入某方面的功能,就需要將對應模塊引入到你的工程中,
greaterThan(QT_MAJOR_VERSION,4): QT += widgets:這是Qt5為了兼容Qt4而專門設計的,陳述句大意為如果Qt版本大于4,則將widgets模塊加入到QT變數中,從這一點,我們可以推敲出Qt4的widgets模塊是和gui模塊為一體的,而Qt5已經將其分離了出來,
TARGET = demo_01:應用程式名,生成的.exe程式名稱,
TEMPLATE=app:工程所使用的模版,app表示是一個視窗應用程式,如果是lib則表明是一個動態庫模版,
DEFINES+=QT_DEPRECATED_WARNINGS:定義編譯選項,QT_DEPRECATED_WARNINGS表示當Qt的某些功能被標記為過時的,那么編譯器會發出警告,
SOURCES +=
main.cpp:源檔案,“\”號可以分行書寫,但仍為一行,
HEADERS +=:頭檔案,這里暫時沒有頭檔案,
2.main.cpp檔案如下:
1 #include <QApplication>
2 #include <QLabel>
3 int main(int argc, char *argv[])
4 {
5 QApplication a(argc, argv);
6 QLabel *label = new QLabel(QObject::tr("Hello Qt! 學習使我快樂!"));
7 label->setAlignment(Qt::AlignCenter);
8 QFont ft;
9 ft.setPointSize(16);
10 label->setFont(ft);
11 QPalette pa;
12 pa.setColor(QPalette::WindowText,Qt::red);
13 label->setPalette(pa);
14 label->resize(500,400);
15 label->move(100,50);
16 label->show();
17 return a.exec();
18 }
逐行解釋:
第1行和第2行包含了類QApplication和Qlabel的定義,對于每個Qt類,都有一個與該類同名(且大寫)的頭檔案,在這個頭檔案中包含了對該類的定義,
第3行就是C++中常見的main()函式,它有兩個引數,用來接收命令列引數,
第5行新建了QApplication物件,用于管理應用程式的資源,任何一個Qt Widget是程式都要有一個QApplication物件,因為Qt程式可以接收命令列引數,所以它需要argc和argv兩個形參,
第6行新建一個QLabel的物件label,引數QString可以用tr()函式的引數回傳,
第7行設定了該label處于視窗中心位置,
第8、9、10行設定了label里面內容的字體是16號字體,
第11、12、13行設定了label里面內容的字體顏色是紅色,
第14、15、16行分別設定了label控制元件的大小(這里只有一個控制元件也就是表單的大小)以及生成應用程式偏移視窗的位置并將其show()函式顯示出來,
第17行讓QApplication物件進入事件回圈,這樣Qt應用程式運行時便可以接收產生的事件,
3.運行效果如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278557.html
標籤:其他
上一篇:【圖形學】立方體建模及顯示
