91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

【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

土默特右旗| 满城县| 横峰县| 巴塘县| 巴里| 甘德县| 延庆县| 镇原县| 德江县| 禄丰县| 阳新县| 闵行区| 清河县| 炉霍县| 巩义市| 奇台县| 周宁县| 大同县| 九江市| 沅江市| 内江市| 昌平区| 敦煌市| 新泰市| 博兴县| 醴陵市| 庆元县| 曲沃县| 定州市| 富顺县| 大冶市| 壶关县| 夹江县| 东乡县| 景宁| 遂宁市| 延吉市| 德州市| 安宁市| 平遥县| 兴业县|