国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

01_1_Qt工程實(shí)踐_Qt樣式表Qss(什么是QSS;基本語法;setStyleSheet函數(shù);樣式表的屬性值;利用QtCreate實(shí)現(xiàn)樣式切換;樣式表實(shí)現(xiàn)皮膚改變實(shí)例)

這篇具有很好參考價(jià)值的文章主要介紹了01_1_Qt工程實(shí)踐_Qt樣式表Qss(什么是QSS;基本語法;setStyleSheet函數(shù);樣式表的屬性值;利用QtCreate實(shí)現(xiàn)樣式切換;樣式表實(shí)現(xiàn)皮膚改變實(shí)例)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本篇介紹什么是樣式表,討論如何使用Qt樣式表Qss修改應(yīng)用程序外觀,并通過實(shí)例進(jìn)行講解。

了解HTML的同學(xué)都知道,一般在HTML中我們把樣式表叫做CSS,在Qt中我們稱之為QSS。QSS和CSS并不完全等同,語法完全類似,定義上存在一些差別。

QSS是Qt程序界面中用來設(shè)置控件的背景圖片、大小、字體顏色、字體類型、按鈕狀態(tài)變化等屬性,用于美化UI界面。實(shí)現(xiàn)界面和程序的分離,快速切換皮膚。
QSS最大的優(yōu)點(diǎn)就是簡(jiǎn)單便捷,我們可以通過它快速實(shí)現(xiàn)應(yīng)用程序的外觀界面。

QPushButton {color: red} //代表QPushButton 顏色為紅色

2)幾個(gè)選擇器可以指定相同的聲明,使用逗號(hào)“,”來分隔選擇器

 //代表QPushButton ,QLineEdit,QComboBox 顏色為紅色
QPushButton,QLineEdit,QComboBox  {color: red}

3)聲明部分的規(guī)則有多個(gè)屬性值時(shí)包含在花括號(hào){}中,以分號(hào);分隔,屬性之間在QSS之間是不區(qū)分大小寫的

QPushButton {color: red;background-color:white;}

Qt中設(shè)置樣式表最主要的函數(shù)為setStyleSheet

通過實(shí)例來介紹如何去設(shè)置Qt的樣式表,
1)新建工程
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
2)拉入一個(gè)按鈕,此時(shí)編譯運(yùn)行之后,按下按鈕其字體和顏色都是沒有發(fā)生變化的。
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
3)通過樣式表使得按下按鈕后其字體和顏色發(fā)生變化。

(1)修改按鈕中字體顏色
ui->pushButton->setStyleSheet(QString("QPushButton{color:rgb(255,0,0)}"));實(shí)現(xiàn)按鈕中的字體顯示為紅色

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->pushButton->setStyleSheet(QString("QPushButton{color:rgb(255,0,0)}"));
}

運(yùn)行結(jié)果:
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
(2)設(shè)置按鈕按下后的顏色變化
以下代碼中:QPushButton:pressed表示按鈕按下后,顏色為background-color:rgb(200,200,200);border-style:inset;表示內(nèi)邊框;color:rgb(0,255,0);字體顏色為color:rgb(0,255,0);,其中“\”代表本行寫不下,下行仍為同一行。

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->pushButton->setStyleSheet(QString("QPushButton:pressed{ \
                                          background-color:rgb(200,200,200);\
                                          border-style:inset;\
                                          color:rgb(0,255,0);\
                                          }\
                                          QPushButton{color:rgb(255,0,0)}"));
}

運(yùn)行結(jié)果:未按下按鈕結(jié)果與上步一致,按下后字體顏色為綠色
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言

上述的方法是使用setStyleSheet 函數(shù)實(shí)現(xiàn)QSS的方法,下來將會(huì)先介紹樣式表的屬性指向,然后利用QtCreate實(shí)現(xiàn)上述內(nèi)容,最終探討兩種實(shí)現(xiàn)方法的區(qū)別。

以下屬性值熟悉有什么內(nèi)容即可,在使用時(shí)再去具體查詢使用
1)QSS文本屬性
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
2)QSS背景屬性
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
3)QSS邊框?qū)傩?br>qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
4)QSS Box屬性
我們將控件的一個(gè)區(qū)域稱為Box,這個(gè)Box的內(nèi)容如果溢出了如何處理,均使用Box屬性進(jìn)行設(shè)置
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
5)QSS 字體屬性
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
6)QSS 外邊框?qū)傩?br> 控件之間的間距可以使用外邊框?qū)傩栽O(shè)置
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
7)QSS 內(nèi)邊框?qū)傩?br>qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
8)QSS 位置屬性
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言

#if 0
    ui->pushButton->setStyleSheet(QString("QPushButton:pressed{ \
                                          background-color:rgb(200,200,200);\
                                          border-style:inset;\
                                          color:rgb(0,255,0);\
                                          }\
                                          QPushButton{color:rgb(255,0,0)}"));
 #endif

2)在UI中選擇按鈕,右鍵選擇“改變樣式表”,將樣式表中設(shè)置的內(nèi)容粘貼至“編輯樣式表”中
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
運(yùn)行之后得到的效果與使用setStyleSheet函數(shù)設(shè)置樣式表一樣

“編譯輸出”位置查看
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
UI文件可以通過uic.exe來生成ui_widget.h,通過以下的構(gòu)造函數(shù)中的ui->setupUi(this);加載界面

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
 }

ui->setupUi(this);其實(shí)就是在ui_widget.h中,代開ui_widget.h進(jìn)行查看
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
對(duì)應(yīng)內(nèi)容如下:

#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_Widget
{
public:
    QPushButton *pushButton;

    void setupUi(QWidget *Widget)
    {
        if (Widget->objectName().isEmpty())
            Widget->setObjectName(QStringLiteral("Widget"));
        Widget->resize(475, 384);
        pushButton = new QPushButton(Widget);
        pushButton->setObjectName(QStringLiteral("pushButton"));
        pushButton->setGeometry(QRect(150, 160, 112, 34));
        pushButton->setStyleSheet(QLatin1String("QPushButton:pressed{ background-color:rgb(200,200,200);\n"
"                     border-style:inset;\n"
"                     color:rgb(0,255,0);\n"
"}\n"
"QPushButton{color:rgb(255,0,0)}"));

        retranslateUi(Widget);

        QMetaObject::connectSlotsByName(Widget);
    } // setupUi

    void retranslateUi(QWidget *Widget)
    {
        Widget->setWindowTitle(QApplication::translate("Widget", "Widget", Q_NULLPTR));
        pushButton->setText(QApplication::translate("Widget", "PushButton", Q_NULLPTR));
    } // retranslateUi

};

namespace Ui {
    class Widget: public Ui_Widget {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_WIDGET_H

可以看到工具自動(dòng)生成代碼如下,是與我們自己寫的代碼實(shí)際上是一樣的。

        pushButton->setStyleSheet(QLatin1String("QPushButton:pressed{ background-color:rgb(200,200,200);\n"
"                     border-style:inset;\n"
"                     color:rgb(0,255,0);\n"
"}\n"
"QPushButton{color:rgb(255,0,0)}"));

可以看出兩種方法都是使用setStyleSheet實(shí)現(xiàn)的,原理上是一樣的。

樣式表除了上述作用,最大的作用是改變應(yīng)用的皮膚
1)起始頁面的qss文件的加載
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言

qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言

2)通過按鈕實(shí)現(xiàn)不同樣式的切換
實(shí)現(xiàn)方法,通過按鈕實(shí)現(xiàn)不同樣式表的加載
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
qss,# Qt工程實(shí)踐,qt,ui,開發(fā)語言
9.學(xué)習(xí)視頻地址:
【Qt學(xué)習(xí)系列】11.Qt樣式表Qss
【Qt學(xué)習(xí)系列】11.Qt樣式表Qss(2)文章來源地址http://www.zghlxwxcb.cn/news/detail-594734.html

到了這里,關(guān)于01_1_Qt工程實(shí)踐_Qt樣式表Qss(什么是QSS;基本語法;setStyleSheet函數(shù);樣式表的屬性值;利用QtCreate實(shí)現(xiàn)樣式切換;樣式表實(shí)現(xiàn)皮膚改變實(shí)例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • QT界面設(shè)計(jì):深入理解QSS樣式表設(shè)計(jì)

    QT界面設(shè)計(jì):深入理解QSS樣式表設(shè)計(jì)

    本文詳細(xì)介紹了QT界面設(shè)計(jì)中的QSS樣式技術(shù),包括QSS樣式表的語法、用法、selector設(shè)置以及屬性列表等內(nèi)容,幫助你提升審美,打造出令人羨慕的軟件界面。

    2024年02月13日
    瀏覽(31)
  • [QT編程系列-39]:用戶界面UI - 樣式表QSS與樣式文件快速入門

    目錄 1. 概述 2. CSS 3. QSS示例 4. QT樣式表文件使用方法與步驟 5. QT內(nèi)置樣式 6. QT常見基本樣式 Qt提供了一種稱為Qt樣式表(Qt Style Sheets)的機(jī)制,可以用于 自定義和美化Qt應(yīng)用程序的用戶界面(UI) 。 使用Qt樣式表,你可以通過類似 CSS 的語法來定義UI元素的外觀和布局,包括顏

    2024年02月04日
    瀏覽(29)
  • 【QT】史上最全最詳細(xì)的QSS樣式表用法及用例說明

    【QT】史上最全最詳細(xì)的QSS樣式表用法及用例說明

    Qt樣式表支持各種屬性、偽狀態(tài)和子控件,可以自定義小部件的外觀。 Widget 如何設(shè)置 QWidget 只支持 background , background-clip 和 background-origin 屬性。 如果你繼承于QWidget,那么你需要為你自定義的QWidget提供一個(gè)paintEvent,如下所示: 如果沒有進(jìn)行QSS樣式表設(shè)置,上面的代碼就是一

    2024年02月03日
    瀏覽(19)
  • qss中樣式表不生效

    qss中樣式表不生效

    qt問題記錄: 1.widget是被提升的窗口(被提升為Form),我設(shè)置了樣式表后它的效果如下圖,但是實(shí)際跑的時(shí)候它的樣式表沒有顯示。 ? ?當(dāng)我取消提升后 (讓它變成普通的QWidget后) ,它就正常顯現(xiàn)了。 ? 我突然想到,它不是沒有顯現(xiàn),而是 被上面的窗口覆蓋掉了 。 2. ?這是

    2024年02月08日
    瀏覽(24)
  • C++Qt QSS要注意的坑

    qss源自css,相當(dāng)于css的一個(gè)子集,主要支持的是css2標(biāo)準(zhǔn),很多網(wǎng)上的css3的標(biāo)準(zhǔn)的寫法在qss這里是不生效的,所以不要大驚小怪。 qss也不是完全支持所有的css2,比如text-align官方文檔就有說明,只支持 QPushButton and QProgressBar,務(wù)必看清楚。 有時(shí)候偷懶直接來一句 *{xxx},你會(huì)發(fā)

    2024年02月10日
    瀏覽(27)
  • 【Qt筆記】QSS中常用的子控件

    子控件名稱 說明 ::branch QTreeView的分支指示器 ::chunk QProgressBar的進(jìn)度顯示塊 ::close-button QDockWidgte或QTabBar頁面的關(guān)閉按鈕 ::down-arrow QComboBox、QHeaderView(排序指示器)、QScrollBar或QSpinBox的下拉箭頭 ::down-button QScrollBar或QSpinBox的向下按鈕 ::float-button QComboBox的下拉按鈕 ::groove QSlider的凹

    2024年02月21日
    瀏覽(26)
  • Qt中QSS文件的導(dǎo)入與使用-書寫格式(筆記)

    Qt中QSS文件的導(dǎo)入與使用-書寫格式(筆記)

    想要美化Qt界面,就需要手動(dòng)設(shè)定控件的qss樣式 如果是直接在cpp文件中設(shè)定樣式,則使用setStyleSheet(“xxx”)函數(shù),但控件一多,你的代碼界面就會(huì)變成這樣 為了方便源碼的閱讀,這時(shí)要么考慮使用宏定義設(shè)定重復(fù)的qss,要么考慮使用qss文件 QSS文件加載 QSS文件書寫格式 qss文件

    2024年02月10日
    瀏覽(30)
  • 【QT入門】 自定義標(biāo)題欄界面qss美化+按鈕功能實(shí)現(xiàn)

    【QT入門】 自定義標(biāo)題欄界面qss美化+按鈕功能實(shí)現(xiàn)

    往期回顧: 【QT入門】 鼠標(biāo)按下和移動(dòng)事件實(shí)現(xiàn)無邊框窗口拖動(dòng)-CSDN博客 【QT入門】 設(shè)計(jì)實(shí)現(xiàn)無邊框窗口拉伸的公用類-CSDN博客 【QT入門】對(duì)無邊框窗口自定義標(biāo)題欄并實(shí)現(xiàn)拖動(dòng)和拉伸效果-CSDN博客 1、實(shí)現(xiàn)懸浮樣式改變 當(dāng)鼠標(biāo)懸浮到該按鈕上時(shí),樣式會(huì)有一定改變。 2、添加

    2024年04月10日
    瀏覽(28)
  • 路由器中的QSS是什么意思 有什么功能

    QSS又稱快速安全設(shè)置,通過按下無線路由和無線網(wǎng)卡上的QSS按鈕,即可自動(dòng)建立WPA2級(jí)別的安全連接,無需在路由器或網(wǎng)卡管理軟件的界面上進(jìn)行繁瑣的設(shè)置,大大簡(jiǎn)化無線安全設(shè)置的操作。普聯(lián)(tp-link)公司帶QSS功能的產(chǎn)品有WR941N,WR841N,WN951N,WN910N,WN827N,WN851N。 在WR8

    2024年02月06日
    瀏覽(21)
  • QT控件通過qss設(shè)置子控件的對(duì)齊方式、大小自適應(yīng)等

    QT控件通過qss設(shè)置子控件的對(duì)齊方式、大小自適應(yīng)等

    一些復(fù)雜控件,是有子控件的,每個(gè)子控件,都可以通過qss的雙冒號(hào)選擇器來選中,進(jìn)行獨(dú)特的樣式定義。很多控件都有子控件,太多了,后面單獨(dú)寫一篇文章來介紹各個(gè)控件的子控件。這里就隨便來幾個(gè)例子 例如下拉列表控件,右邊有個(gè)下拉按鈕(QComboBox::drop-down)就是子

    2024年02月15日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包