• <menu id="w2i4a"></menu>
  • logo Qt使用教程2020

    文檔首頁(yè)>>Qt使用教程2020>>跨平臺(tái)開發(fā)工具Qt教程:如何編譯程序

    跨平臺(tái)開發(fā)工具Qt教程:如何編譯程序


    Qt(發(fā)音為“ cute”,而不是“ cu-tee”)是一個(gè)跨平臺(tái)框架,通常用作圖形工具包,它不僅創(chuàng)建CLI應(yīng)用程序中也非常有用。而且它也可以在三種主要的臺(tái)式機(jī)操作系統(tǒng)以及移動(dòng)操作系統(tǒng)(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設(shè)備,Android(Necessitas)和iOS的端口上運(yùn)行更多Qt產(chǎn)品詳情點(diǎn)擊這里》》

    點(diǎn)擊下載Qt最新試用版

    Qt程序如何編譯

    Qt Creator為我們調(diào)用了構(gòu)建系統(tǒng),但是了解Qt程序編譯的過(guò)程也是一件有趣的事。對(duì)于小型程序,手動(dòng)編譯所有內(nèi)容,創(chuàng)建目標(biāo)文件然后進(jìn)行鏈接很容易。但是對(duì)于大型項(xiàng)目,命令行很容易編寫。如果您熟悉Linux,則可能知道所有程序都是使用描述所有要執(zhí)行的命令行的makefile進(jìn)行編譯的。但是對(duì)于某些項(xiàng)目,編寫makefile也可能會(huì)感覺(jué)乏味。

    qmake是Qt附帶的構(gòu)建系統(tǒng),它會(huì)為您生成那些makefile(還有其他可以使用的makefile,但是我們?cè)谶@里給出qmake的示例)。使用簡(jiǎn)單的語(yǔ)法,它會(huì)生成用于編譯Qt程序的makefile。但這不是它的唯一功能。Qt使用元對(duì)象來(lái)擴(kuò)展C ++功能,而qmake負(fù)責(zé)準(zhǔn)備一個(gè)包含此元對(duì)象提取階段的makefile。您將在另一章中看到。

    因此,Qt應(yīng)用程序分3個(gè)步驟進(jìn)行編譯

    1. 編寫一個(gè).pro文件來(lái)描述要編譯的項(xiàng)目
    2. 使用qmake生成一個(gè)makefile
    3. 該程序是使用make(或Windows上的nmakejom構(gòu)建的
    按鈕

    本章概述了小部件模塊。它將介紹小部件屬性,小部件中使用的繼承方案等。接下來(lái)我們將對(duì)這些按鈕進(jìn)行一些自定義。

    Qt對(duì)象具有許多可以使用getter和setter修改的屬性。在Qt中,如果一個(gè)屬性稱為foo,則關(guān)聯(lián)的getter和setter將具有這些簽名

    Tfoo() const;
    void setFoo(const T);

    實(shí)際上,Qt將屬性,獲取器和設(shè)置器的系統(tǒng)擴(kuò)展到稱為property的東西。屬性是可以訪問(wèn),修改或常量并且可以通知更改的任何類型的值。屬性系統(tǒng)很有用,尤其是在第三部分(QML)中?,F(xiàn)在,我們將使用“屬性”或“屬性”來(lái)做同樣的事情。

    QPushButton具有很多屬性:

    • 文本
    • 字形
    • 工具提示
    • 圖標(biāo)
    • ...

    因此,我們可以使用它們來(lái)自定義按鈕。

    我們首先更改文本并添加工具提示

    #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();
    }

    結(jié)果如下:


    我們還可以更改字體。在Qt中,字體用QFont類表示。該文檔提供了大量信息。我們?cè)谶@里特別關(guān)注QFont的構(gòu)造函數(shù)之一。

    QFont(const QString & family, int pointSize = –1, int weight = -1, bool italic = false)

    為了更改字體,我們必須實(shí)例化QFont類,然后使用setFont將其傳遞給QPushButton。以下代碼片段會(huì)將字體更改為Courier。

    QFont font ("Courier");
    button.setFont(font);

    您可以嘗試使用QFont構(gòu)造函數(shù)的其他參數(shù)來(lái)重現(xiàn)本章第一張圖片中所示的按鈕。

    設(shè)置圖標(biāo)也不是很困難。QIcon類表示一個(gè)圖標(biāo)。如果文件系統(tǒng)中具有絕對(duì)(或相對(duì))路徑,則可以創(chuàng)建一個(gè)圖標(biāo)。我建議在此示例中提供絕對(duì)路徑。但是出于部署方面的考慮,您可以使用相對(duì)路徑,或者更好地使用資源系統(tǒng)。

    QIcon icon ("/path/to/my/icon/icon.png");
    button.setIcon(icon);

    在Linux和其他某些OS上,有一種方便的方法可以通過(guò)圖標(biāo)主題設(shè)置圖標(biāo)。可以使用靜態(tài)方法來(lái)完成:

    QIcon Qicon::fromTheme ( const QString &name, const QIcon &fallback = QIcon());

    例如,在本章開始的屏幕截圖中,笑臉來(lái)自O(shè)xygen KDE圖標(biāo)主題,其設(shè)置方式是:

    button.setIcon(QIcon::fromTheme("face-smile"));

    今天分享的內(nèi)容就到這里,下一篇文章中我們講解Qt類層次,更多Qt產(chǎn)品詳情點(diǎn)擊這里》》

    如果你對(duì)我們的產(chǎn)品感興趣或者有任何疑問(wèn),歡迎咨詢慧都在線客服>>

    慧都高端UI界面開發(fā)
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();