新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Qt 簡(jiǎn)單的風(fēng)格統(tǒng)一與換膚

        Qt 簡(jiǎn)單的風(fēng)格統(tǒng)一與換膚

        作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò) 收藏

        QT既然作為一個(gè)成功的跨平臺(tái)GUI庫(kù),當(dāng)然會(huì)想到界面風(fēng)格統(tǒng)一,本地化與換膚都做了考慮,網(wǎng)上有多種換膚的方法,自己也習(xí)慣于用簡(jiǎn)單的方法,總結(jié)了一下自己心得,與大家分享

        本文引用地址:http://www.104case.com/article/201609/303387.htm

        一,改變與裝飾界面:

        通常使用設(shè)置Widget的背景,邊界,子對(duì)象的圖片,顏色來(lái)進(jìn)行裝飾QWidget,

        1,改變被景圖片:

        較常用辦法是 QWidget.setAutoFillBackground(true); QPalette palette= QWidget.Palette(); QPixmap pic(xxx.png); palette.setBrush(QPalette::Window, new Brush(pic));palette.setBrush(QPalette::Base, new Brush(pic));palette.setBrush(QPalette::Button, new Brush(pic)); QWidget.setPalette(palette);

        但不同的控件還是要區(qū)別對(duì)待,比如對(duì)待QPushButton簡(jiǎn)單用此方法就不行,還要設(shè)置為QPushButton.setFlat(true),也可以用QPushButton的setImage方法,還有對(duì)待 QTabWidget不僅要改變背景圖片,還要改變Tab的圖片,Tab還要區(qū)別改變被選中的Tab與沒(méi)被選中的Tab圖片,QTreeWidget,QTreeView中還要針對(duì)樹(shù)裝結(jié)節(jié)的圖片,還有標(biāo)題欄等,都要用不同的方法來(lái)設(shè)置,QT有一種更方便的解決方案,就是設(shè)置StyleSheet

        被稱為QSS方法,類似網(wǎng)頁(yè)設(shè)計(jì)中的CSS, 語(yǔ)法也幾乎相同Idential,比如要設(shè)置QPushButton的背景圖,鼠標(biāo)over,及按下的圖片切換,可以用如下方法:

        const char* normal = “bg.png;

        const char* pressed = pressed.png;

        const char* over = over.png;

        char str[512] = {0};

        sprintf(str,QPushButton{background-image:url(%s);border-style.:flat;} QPushButton:hover:pressed{background-image:url(%s);border-

        style.:flat;}QPushButton:hover:!pressed{background-image:url(%s);border-style.:flat;}, normal, pressed, over);

        w->setStyleSheet(QString(str));

        2,改變顏色:

        常用:QWidget->setBackgroundColor();來(lái)改變,當(dāng)然也可以用Style. Sheet方法。

        二,全局統(tǒng)一風(fēng)格:

        上面提到了QSS,QT還可以通過(guò)設(shè)置QApplication的StyleSheet來(lái)改變程序中所有控件的風(fēng)格。比如:

        QApplication.setStyleSheet(QString(QPushButton{background-image:url(bg.png); border-style.:flat;})); 這樣的話,所有QPushButton的實(shí)例對(duì)象的背景圖片缺省情況下都是bg.png,當(dāng)然,如果你重新設(shè)置某個(gè)QPushButton實(shí)例對(duì)象的 StyleSheet,那個(gè)實(shí)例對(duì)象的風(fēng)格以當(dāng)前設(shè)置的為準(zhǔn)。

        這樣對(duì)界面的風(fēng)格統(tǒng)一提供了一個(gè)簡(jiǎn)單有效的解決方案。



        關(guān)鍵詞: Qt

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 文成县| 湘阴县| 大悟县| 衡东县| 平度市| 南宫市| 米易县| 手游| 福建省| 武宣县| 敦煌市| 徐水县| 宝山区| 淮滨县| 阳新县| 安丘市| 罗源县| 葫芦岛市| 山阳县| 宜君县| 清水县| 梅州市| 清远市| 林甸县| 平陆县| 青铜峡市| 开阳县| 邳州市| 象州县| 辽阳县| 姚安县| 漳浦县| 巫溪县| 尚志市| 平潭县| 汕头市| 琼结县| 穆棱市| 富阳市| 九江市| 阜宁县|