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