亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【Qt學習筆記】14.界面的樣式 (Qt Stylesheet)

發布時間:2020-07-14 20:03:41 來源:網絡 閱讀:7287 作者:shangluyi 欄目:編程語言

一、StyleSheet的基本用法

StyleSheet : 樣式單

Qt中支持StyleSheet技術,將界面的樣式定義分離開來。采用和HTML/CSS類似的形式,使用一個文本文件來單獨定義樣式。

通常,用于定義界面樣式的StyleSheet稱為“皮膚”


StyleSheet的定義:

定義一個StyleSheet,前面是類名(稱為Selector),大括號內是屬性定義,支持/**/注釋語法

例如:

/* 以GBK保存 */
QLineEdit
{
    background: yello;
}        // 注意末尾沒有分號

QPushButon, QLineEdit
{
    color: blue;
}                // 注意末尾沒有分號


StyleSheet的使用:

1、設置全局樣式:

可以在main函數中,直接給QApplication設置樣式,此樣式為全局樣式

QString style = "QPushbutton{ color: blud; }";
a.setStyleSheet(style);        //a是  QApplication 類型的對象


2、設置窗口樣式:

可以給某個窗口對象設置樣式

QString style = "QPushbutton{ color: blue; }";
w.setStyleSheet(style);        //w是窗體



樣式的重復定義:

1、對同一個對象調用多次setStyleSheet,則后設置的生效,先前的設置全部丟棄。(替換)

2、下層的樣式覆蓋上層(疊加)

全局樣式(上層) >>> 窗口樣式 >>> 子窗口樣式(下層)

結果:相同的屬性發生覆蓋,其他部分保留


皮膚文件:

通常,把樣式的內容存放到一個文本文件里,然后在程序打開時加載,此文本稱為皮膚文件

// 在main中讀取皮膚文件的內容
QString style = readfile("skin.css");
a.setStyleSheet(style);

要注意文件的編碼,在中文的Windows上編輯文本文件時,默認的是GBK編碼



二、StyleSheet的語法——Selector

Selector:主體是類名

1、屬性的疊加:在一個stylesheet里,后寫的定義會覆蓋先寫的定義

2、包含本類和子類的定義

3、同一行中,可以寫多個類型,以逗號分隔


QPushButton, QLineEdit, QCheckBox
{
    background: color: black;
}



按屬性區分:

假如有8個QPushButton,但想將它們 分成2組,分別有不同的樣式,怎么實現呢?

一種辦法是寫一個子類繼承QPushButton,然后對這個子類單獨設置樣式,

但這種場景,Qt已經為我們提供了一種處理方式

之前或許我們就注意到,每個控件都有一個屬性: whatsThis

該屬性就是用來處理這種場景的。


使用:

QPushButton[whatsThis="classic"]
{
    color: green;
}
QPushButton[whatsThis="modern"]
{
    color: red;
}


此外,還有一種區分方法:按ID區分(即object name,變量名)

QPushButton#btnSearch
{
    color: green;
}

但這種方法有缺陷,通常還是按屬性分比較好

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

芮城县| 淮安市| 玛曲县| 合山市| 新丰县| 洞头县| 鄢陵县| 双城市| 察哈| 广水市| 蒙城县| 襄汾县| 桓仁| 商丘市| 连州市| 青阳县| 子长县| 嘉鱼县| 杭锦后旗| 贡觉县| 巢湖市| 乌苏市| 抚松县| 紫金县| 榆林市| 滁州市| 玉环县| 佛冈县| 项城市| 松阳县| 扬州市| 都昌县| 延寿县| 邯郸市| 河东区| 旬邑县| 巴彦淖尔市| 翼城县| 台东县| 丹江口市| 建平县|