翻譯|使用教程|編輯:鮑佳佳|2020-08-14 14:54:21.090|閱讀 415 次
概述:Qt作為一個跨平臺的c++開發工具,前面我們已經講解了如何通過使用Qt開發GUI程序,本節我們將講解如何對程序進行編譯,以及編譯必經的三個步驟是什么,以及如何通過代碼生成實現。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Qt(發音為“ cute”,而不是“ cu-tee”)是一個跨平臺框架,通常用作圖形工具包,它不僅創建CLI應用程序中也非常有用。而且它也可以在三種主要的臺式機操作系統以及移動操作系統(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設備,Android(Necessitas)和iOS的端口上運行。更多Qt產品詳情點擊這里》》
Qt程序如何編譯Qt Creator為我們調用了構建系統,但是了解Qt程序編譯的過程也是一件有趣的事。對于小型程序,手動編譯所有內容,創建目標文件然后進行鏈接很容易。但是對于大型項目,命令行很容易編寫。如果您熟悉Linux,則可能知道所有程序都是使用描述所有要執行的命令行的makefile進行編譯的。但是對于某些項目,編寫makefile也可能會感覺乏味。
qmake是Qt附帶的構建系統,它會為您生成那些makefile(還有其他可以使用的makefile,但是我們在這里給出qmake的示例)。使用簡單的語法,它會生成用于編譯Qt程序的makefile。但這不是它的唯一功能。Qt使用元對象來擴展C ++功能,而qmake負責準備一個包含此元對象提取階段的makefile。您將在另一章中看到。
因此,Qt應用程序分3個步驟進行編譯
本章概述了小部件模塊。它將介紹小部件屬性,小部件中使用的繼承方案等。接下來我們將對這些按鈕進行一些自定義。
Qt對象具有許多可以使用getter和setter修改的屬性。在Qt中,如果一個屬性稱為foo,則關聯的getter和setter將具有這些簽名
Tfoo() const; void setFoo(const T);
實際上,Qt將屬性,獲取器和設置器的系統擴展到稱為property的東西。屬性是可以訪問,修改或常量并且可以通知更改的任何類型的值。屬性系統很有用,尤其是在第三部分(QML)中。現在,我們將使用“屬性”或“屬性”來做同樣的事情。
QPushButton具有很多屬性:
因此,我們可以使用它們來自定義按鈕。
我們首先更改文本并添加工具提示
#include#include int main(int argc, char **argv) { QApplication app (argc, argv); QPushButton button; button.setText("My text"); button.setToolTip("A tooltip"); button.show(); return app.exec(); }
結果如下:
我們還可以更改字體。在Qt中,字體用QFont類表示。該文檔提供了大量信息。我們在這里特別關注QFont的構造函數之一。
QFont(const QString & family, int pointSize = –1, int weight = -1, bool italic = false)
為了更改字體,我們必須實例化QFont類,然后使用setFont將其傳遞給QPushButton。以下代碼片段會將字體更改為Courier。
QFont font ("Courier"); button.setFont(font);
您可以嘗試使用QFont構造函數的其他參數來重現本章第一張圖片中所示的按鈕。
設置圖標也不是很困難。QIcon類表示一個圖標。如果文件系統中具有絕對(或相對)路徑,則可以創建一個圖標。我建議在此示例中提供絕對路徑。但是出于部署方面的考慮,您可以使用相對路徑,或者更好地使用資源系統。
QIcon icon ("/path/to/my/icon/icon.png"); button.setIcon(icon);
在Linux和其他某些OS上,有一種方便的方法可以通過圖標主題設置圖標。可以使用靜態方法來完成:
QIcon Qicon::fromTheme ( const QString &name, const QIcon &fallback = QIcon());
例如,在本章開始的屏幕截圖中,笑臉來自Oxygen KDE圖標主題,其設置方式是:
button.setIcon(QIcon::fromTheme("face-smile"));
今天分享的內容就到這里,下一篇文章中我們講解Qt類層次,更多Qt產品詳情點擊這里》》。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: