入门Qt——hello, world
生活随笔
收集整理的這篇文章主要介紹了
入门Qt——hello, world
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
注:本文參考(譯)自Qt幫助文檔, Qt Assistant, Qt4.4:Qt Tutorial 1 - Hello World! 和其他所有編程入門一樣,第一個(gè)程序都是簡(jiǎn)單的 hello, world。本程序是一個(gè)最小的Qt程序,僅包含了啟動(dòng)和運(yùn)行部分。下面的圖片是程序運(yùn)行的屏幕截圖。
下面是本程序的完整源代碼:
1: #include <QApplication>
2: #include <QPushButton>
3: int main(int argc, char *argv[])
4: {
5: QApplication app(argc, argv);
6: QPushButton hello("Hello world!");
7: hello.show();
8: return app.exec();
9: }
逐行分析代碼:
1: #include <QApplication>
本行代碼包含了 class QApplication 的定義. 每個(gè)Qt GUI 應(yīng)用程序都必須正確的指定一個(gè)QApplication 對(duì)象. QApplicaton 負(fù)責(zé)管理程序范圍內(nèi)的資源,如默認(rèn)的字體 和 鼠標(biāo)指針等.
2: #include <QPushButton> 這行代碼包含了 class QPushButton 的定義. 每個(gè)類都是Qt 公有 API 的一部分, 被定義在同名頭文件中. QPushButton 是一個(gè)用戶可以按下/松開(kāi)的 GUI 按鈕. 它自己管理自己的外觀和效果, 和其他所有的 QWidget 一樣. 一個(gè) widget 就是一個(gè)能夠處理用戶輸入、繪圖的用戶接口對(duì)象. 程序員可以修改它們的整體外觀、效果和許多輔助屬性(如顏色) 以及 widget 的內(nèi)容.? 一個(gè) QPushButton? 可以顯示文本 或者 一個(gè)圖標(biāo)(QIcon).
3: int main(int argc, char *argv[]) 4: { main() 函數(shù)是程序的入口點(diǎn). 幾乎總是這樣,在使用Qt時(shí),main() 函數(shù)僅僅被用來(lái)完成一些初始化工作在將控制權(quán)交給Qt前. 參數(shù) argc 為命令行參數(shù)個(gè)數(shù),參數(shù) argv 為指向命令行參數(shù)的數(shù)組. 這是一段標(biāo)準(zhǔn)C++代碼.
5: QApplication app(argc, argv); 對(duì)象 app 是 程序的 QApplication 實(shí)例. 在這行代碼被創(chuàng)建. 我們將 argc 和 argv 通過(guò) QApplication 的構(gòu)造函數(shù)船體給了它, 因此它便能處理規(guī)定的命令行參數(shù)(如X11系統(tǒng)下的 -display).? 所有的命令行參數(shù)都會(huì)被 Qt 識(shí)別,并從 argv 中移除, 相應(yīng)的 argc 也會(huì)被減少. 可以參見(jiàn) QApplication::arguments() 文檔詳細(xì)說(shuō)明. QApplication 對(duì)象必須在在任何 Qt GUI 相關(guān)特性的使用前創(chuàng)建.
6: QPushButton hello("Hello world!"); 在這里, 聲明了 QApplication 后, 迎來(lái)了第一行 GUI 相關(guān)代碼: 一個(gè)按鈕被創(chuàng)建. 按鈕被設(shè)置顯示文本 "Hello world!". 由于我們沒(méi)有顯式的為它指定 父窗體(QPushButton構(gòu)造函數(shù)的第二個(gè)參數(shù)), 按鈕將會(huì)擁有一個(gè)帶有窗體框和標(biāo)題欄的窗體. 按鈕的大小被確定為默認(rèn)顯示文本的大小. 我們可以調(diào)用 QWidget::move() 給 widget 在屏幕上指定一個(gè)特定的位置, 但是在這里我們讓系統(tǒng)選擇了一個(gè)位置.
7: hello.show(); 當(dāng)一個(gè) widget 被創(chuàng)建時(shí)是不可見(jiàn)的. 你必須調(diào)用 QWidget::show() 使得它可見(jiàn).
8: return app.exec(); 9: } 在這里 main() 函數(shù)將控制權(quán)交給了 Qt. QCoreApplication::exec() 會(huì)直到應(yīng)用程序退出時(shí)返回.(QCoreApplication 是 QApplication 的基類. 它實(shí)現(xiàn)了 QApplication 的核心功能, 沒(méi)有 GUI 功能 并且 可以被用在開(kāi)發(fā)沒(méi)有 GUI 的應(yīng)用程序里.) 在 QCoreApplication::exec() 中, Qt 接收并且處理來(lái)自 用戶 和 系統(tǒng) 的事件 并將它們傳遞給恰當(dāng)?shù)?widget 處理.
你現(xiàn)在可以嘗試編譯、運(yùn)行這個(gè)程序. 這個(gè)例子存在于 Qt 的 examples/tutorials/tutorial 目錄下. 將會(huì)在你編譯Qt 的時(shí)候自動(dòng)被編譯.
如果你是動(dòng)手自己寫(xiě)的代碼, 你需要按照以下指令操作: 要編譯 C++ 應(yīng)用程序,你需要?jiǎng)?chuàng)建一個(gè) makefile 文件. 最簡(jiǎn)單的創(chuàng)建 makefile 方法就是使用 Qt 自帶的 qmake 編譯工具. 如果你已經(jīng)將 main.cpp 文件保存于一個(gè)空目錄下,你所需要做的如下: qmake -project
qmake ? 第一條命令告訴 qmake 創(chuàng)建一個(gè)工程文件 (.pro 文件). 第二條命令告訴 qmake 創(chuàng)建一個(gè)基于 工程文件 的平臺(tái)相關(guān)的 makefile. 你現(xiàn)在可以試著 敲入 make(或者 nmake 如果你使用Visual Studio) 并且運(yùn)行你的第一個(gè) Qt 應(yīng)用程序!
?后記: 平時(shí)自己看也就罷了,沒(méi)想到要翻譯寫(xiě)出來(lái)既然如此困難! 感覺(jué)詞語(yǔ)不通順,目前國(guó)內(nèi) Qt 相關(guān)的中文資料較少,很多人又不愿意看 英文的, 舉手之勞,希望既能夠自己練練,也能夠給初學(xué)者或者希望學(xué)習(xí)者提供點(diǎn)資料 :)
2: #include <QPushButton> 這行代碼包含了 class QPushButton 的定義. 每個(gè)類都是Qt 公有 API 的一部分, 被定義在同名頭文件中. QPushButton 是一個(gè)用戶可以按下/松開(kāi)的 GUI 按鈕. 它自己管理自己的外觀和效果, 和其他所有的 QWidget 一樣. 一個(gè) widget 就是一個(gè)能夠處理用戶輸入、繪圖的用戶接口對(duì)象. 程序員可以修改它們的整體外觀、效果和許多輔助屬性(如顏色) 以及 widget 的內(nèi)容.? 一個(gè) QPushButton? 可以顯示文本 或者 一個(gè)圖標(biāo)(QIcon).
3: int main(int argc, char *argv[]) 4: { main() 函數(shù)是程序的入口點(diǎn). 幾乎總是這樣,在使用Qt時(shí),main() 函數(shù)僅僅被用來(lái)完成一些初始化工作在將控制權(quán)交給Qt前. 參數(shù) argc 為命令行參數(shù)個(gè)數(shù),參數(shù) argv 為指向命令行參數(shù)的數(shù)組. 這是一段標(biāo)準(zhǔn)C++代碼.
5: QApplication app(argc, argv); 對(duì)象 app 是 程序的 QApplication 實(shí)例. 在這行代碼被創(chuàng)建. 我們將 argc 和 argv 通過(guò) QApplication 的構(gòu)造函數(shù)船體給了它, 因此它便能處理規(guī)定的命令行參數(shù)(如X11系統(tǒng)下的 -display).? 所有的命令行參數(shù)都會(huì)被 Qt 識(shí)別,并從 argv 中移除, 相應(yīng)的 argc 也會(huì)被減少. 可以參見(jiàn) QApplication::arguments() 文檔詳細(xì)說(shuō)明. QApplication 對(duì)象必須在在任何 Qt GUI 相關(guān)特性的使用前創(chuàng)建.
6: QPushButton hello("Hello world!"); 在這里, 聲明了 QApplication 后, 迎來(lái)了第一行 GUI 相關(guān)代碼: 一個(gè)按鈕被創(chuàng)建. 按鈕被設(shè)置顯示文本 "Hello world!". 由于我們沒(méi)有顯式的為它指定 父窗體(QPushButton構(gòu)造函數(shù)的第二個(gè)參數(shù)), 按鈕將會(huì)擁有一個(gè)帶有窗體框和標(biāo)題欄的窗體. 按鈕的大小被確定為默認(rèn)顯示文本的大小. 我們可以調(diào)用 QWidget::move() 給 widget 在屏幕上指定一個(gè)特定的位置, 但是在這里我們讓系統(tǒng)選擇了一個(gè)位置.
7: hello.show(); 當(dāng)一個(gè) widget 被創(chuàng)建時(shí)是不可見(jiàn)的. 你必須調(diào)用 QWidget::show() 使得它可見(jiàn).
8: return app.exec(); 9: } 在這里 main() 函數(shù)將控制權(quán)交給了 Qt. QCoreApplication::exec() 會(huì)直到應(yīng)用程序退出時(shí)返回.(QCoreApplication 是 QApplication 的基類. 它實(shí)現(xiàn)了 QApplication 的核心功能, 沒(méi)有 GUI 功能 并且 可以被用在開(kāi)發(fā)沒(méi)有 GUI 的應(yīng)用程序里.) 在 QCoreApplication::exec() 中, Qt 接收并且處理來(lái)自 用戶 和 系統(tǒng) 的事件 并將它們傳遞給恰當(dāng)?shù)?widget 處理.
你現(xiàn)在可以嘗試編譯、運(yùn)行這個(gè)程序. 這個(gè)例子存在于 Qt 的 examples/tutorials/tutorial 目錄下. 將會(huì)在你編譯Qt 的時(shí)候自動(dòng)被編譯.
如果你是動(dòng)手自己寫(xiě)的代碼, 你需要按照以下指令操作: 要編譯 C++ 應(yīng)用程序,你需要?jiǎng)?chuàng)建一個(gè) makefile 文件. 最簡(jiǎn)單的創(chuàng)建 makefile 方法就是使用 Qt 自帶的 qmake 編譯工具. 如果你已經(jīng)將 main.cpp 文件保存于一個(gè)空目錄下,你所需要做的如下: qmake -project
qmake ? 第一條命令告訴 qmake 創(chuàng)建一個(gè)工程文件 (.pro 文件). 第二條命令告訴 qmake 創(chuàng)建一個(gè)基于 工程文件 的平臺(tái)相關(guān)的 makefile. 你現(xiàn)在可以試著 敲入 make(或者 nmake 如果你使用Visual Studio) 并且運(yùn)行你的第一個(gè) Qt 應(yīng)用程序!
?后記: 平時(shí)自己看也就罷了,沒(méi)想到要翻譯寫(xiě)出來(lái)既然如此困難! 感覺(jué)詞語(yǔ)不通順,目前國(guó)內(nèi) Qt 相關(guān)的中文資料較少,很多人又不愿意看 英文的, 舉手之勞,希望既能夠自己練練,也能夠給初學(xué)者或者希望學(xué)習(xí)者提供點(diǎn)資料 :)
總結(jié)
以上是生活随笔為你收集整理的入门Qt——hello, world的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信号槽
- 下一篇: MainWindow 简介