Qt6 加載CSS樣式 (28)

一、在Qt Designer中直接添加樣式

  • 單個顯示控件:對需要修改樣式的顯示控件,右鍵單擊選中“改變樣式表...”選項,在彈出的編輯樣式表窗口中,添加對應(yīng)的樣式表內(nèi)容。
  • 整體顯示控件:在Qt Designer的對象查看器子窗口中,選擇需要修改的局部或整體的對象,右鍵單擊選中“改變樣式表...”選項,在彈出的編輯樣式表窗口中,添加對應(yīng)的樣式表內(nèi)容。

二、在代碼中添加樣式

針對整體或局部顯示控件,使用對應(yīng)的控件對象(整體的控件對象為this指針)調(diào)用setStyleSheet("[樣式表內(nèi)容]")函數(shù)來實現(xiàn)控件的樣式的設(shè)置。

ui->pushButton->setStyleSheet("QPushButton{background-color: rgb(225, 225, 225);border:2px groove gray;border-radius:50px;padding:2px 4px;border-style: outset;}"
                                           "QPushButton:hover{background-color:rgb(229, 241, 251); color: black;}"
                                           "QPushButton:pressed{background-color:rgb(204, 228, 247);border-style: inset;}");

    qBtn->setStyleSheet("QPushButton{color:#FFFFFF;background-color: #1D9DFF;border:2px solid #1d9DFF;}"
       "QPushButton:hover{color: #FF6666;background-color: #8EC8FD;border-radius:4px;}"
       "QPushButton:pressed{color: #FFFFFF;background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3BA0FE, stop:1 #1D9DFF);}");

三 通過讀取樣式文件來試著樣式

  • 首先將需要設(shè)置的樣式表內(nèi)容寫入對應(yīng)的.qss或.css文件中,其樣式表內(nèi)容的書寫格式與css一致。
/*所有QPushButton都有效*/
QPushButton
{
   border: 2px solid rgb(190,190,190);
   background-color: rgb(255,38,0);
   color:rgb(0,0,0);
}
/*鼠標在QPushButton懸停時生效*/
QPushButton:hover{
    border: 2px solid rgb(60,142,99);
    border-radius: 6px;
    color:#Faab10
}

/*ObjectName為btn_Start、btn_Stop的QPushButton有效*/
/*是ObjectName 不是屬性名,可以使用setObjectName函數(shù)設(shè)置*/
QPushButton#btn_Start{
    border: 2px solid #33FFFF;
    border-radius: 6px;
    color:#FF0000;
    background-color:#FF99CC;
}
  • 將樣式表文件作為資源加入到項目中
  • 打開樣式表文件,讀取文件內(nèi)容,并將這些內(nèi)容存儲為Qt的QString類型,然后按照方法2的方式調(diào)用。其中,打開和讀取樣式表文件,并將樣式表內(nèi)容存儲為QString類型對象的代碼如下所示:
QString loadStyleSheet(const QString &sheetName)
{
    QString styleSheet;
    QFile file(sheetName);
    file.open(QFile::ReadOnly);
    if (file.isOpen())
    {
        styleSheet = QLatin1String(file.readAll());
    }
    return styleSheet;
}
static void setStyle(const QString &cssname)
{
    QFile file(cssname);
    file.open(QIODevice::ReadOnly);
    QString css = QLatin1String(file.readAll());
    qApp->setStyleSheet(css);
    file.close();
}

https://blog.csdn.net/weixin_42887343/article/details/123205555
https://blog.csdn.net/chan_qx/article/details/105764850
https://blog.csdn.net/Snow__Sunny/article/details/119205422
https://www.cnblogs.com/ruandahua/p/16020483.html
http://www.itdecent.cn/p/4bf2526cc90d

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容