久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 用QT實現整體換膚

用QT實現整體換(huan)膚 時間(jian):2018-09-28      來源(yuan):未知

所需工具:QT Creator 5.7

前言:

本文主要討論如何將一個QT APP中(zhong)的所有控件進(jin)行整體換(huan)膚的功能。

探討:

近(jin)由于項目需求,我(wo)研究(jiu)了一下如何(he)將一個(ge)QT APP的所有控件進行整體的換膚(fu)功能。

傳統:

如果按(an)照(zhao)傳統的(de)更(geng)換(huan)每一(yi)個控(kong)件(jian)的(de)圖像,那么面臨的(de)問題(ti)是(shi)代碼繁(fan)多,手續繁(fan)瑣。如果這個APP中有100個控(kong)件(jian),那么豈不是(shi)要重寫100次畫(hua)圖的(de)代碼?所以我們需(xu)要一(yi)個統籌整個APP的(de)控(kong)件(jian)。

樣式表:

經過尋(xun)找(zhao),我在QT Assiant中尋(xun)找(zhao)到了一個函數setStyleSheet();

這個(ge)方法(fa)(fa)是QApplation中的一(yi)個(ge)方法(fa)(fa)。主要功能是使用(yong)“樣(yang)式表”來實(shi)現相應的圖片渲(xuan)染(ran)。

什(shen)么是(shi)樣式表呢?

同樣是在QT Assiant中,我們找到了相關的說明:

The concepts, terminology, and syntax of Qt Style Sheets are heavily inspired by HTML Cascading Style Sheets (CSS) but adapted to the world of widgets

也就是說“樣式表”本(ben)身(shen)是一(yi)個(ge)CSS語言。

所(suo)以(yi)我們(men)在按照CSS語言來(lai)書寫一段CSS代碼吧!(在QT中我們(men)成為qss語言)

我們(men)來書寫一個文件(jian)叫:my.qss 并且把它加(jia)入(ru)到QT APP中(zhong)的(de)資(zi)源文件(jian)

QWidget{

        /*背景圖片,無法隨著部件的大小(xiao)來自動縮放*/

        background-image: url(:/res/image/common/background.png);

        /*設置邊框圖片(pian),實現隨著部件的大(da)小(xiao)來自動(dong)縮放,會繪制在背景之上*/

        border-image: url(:/res/image/common/background.png);

}

 

QPushButton{

         /*背景顏色(se)*/

 ;       background-color: rgba(100, 225, 100, 30);

         /*邊框樣式(shi)為沉進(jin)去*/

        border-style:inset;

        /*邊框寬度為4個像(xiang)素*/

        border-width:4px;

        /*邊框圓(yuan)角(jiao)半徑為10個像素*/

        border-radius:10px;

        /*邊(bian)框顏色*/

        border-color: rgba(100, 125, 15, 30);

 

        /*字(zi)體*/

        font:bold 9px "新宋體";

        /*字(zi)體(ti)顏色*/

        color: rgba(0, 0, 0, 100);

        /*填襯(chen)*/

        padding:6px;

}

然后我(wo)們要給APP 安裝一下樣式表:

下列代碼(ma)書寫(xie)到APP中(zhong)某個(ge)能夠(gou)被運行的代碼(ma):

    //==============使用樣式表(biao)文件(jian)==============

    QFile t_styleSheetFile(":/my.qss");

    //以只讀方式打開(kai)文件

    t_styleSheetFile.open(QFile::ReadOnly);

    //讀取文件(jian)所有(you)內容(rong),用tr()函數(shu)將其轉換為QString類型

    QString m_styleSheet = t_styleSheetFile.readAll();

    //為QApplication設置樣式表

qApp->setStyleSheet(m_styleSheet);

 

我(wo)們來看(kan)一下代碼的實現(xian)效(xiao)果:

你會(hui)發現本APP中(zhong)所有的控件,都會(hui)按(an)照你的qss文件中(zhong)的指定進(jin)行布置(zhi)。

上一篇:C語言設計模式——硬件代理

下一篇:MODBUS的ASCII模式的碼的計算

熱點文章推薦(jian)
華(hua)清學員就業榜(bang)單
高薪學員(yuan)經驗分享
熱點(dian)新聞推薦
前臺專線:010-82525158 企業(ye)培(pei)訓洽談專線:010-82525379 院校合作洽談專線(xian):010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部