国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

python GUI庫圖形界面開發(fā)之PyQt5動態(tài)加載QSS樣式文件

瀏覽:101日期:2022-08-06 13:53:58

在Qt中經(jīng)常需要使用樣式,為了降低耦合性(與邏輯代碼分離),我們通常會定義一個QSS文件,然后編寫各種控件(QLabel,QLIneEdit,QPushButton等)的樣式,最后使用QApplication或QMainWindow來加載樣式,這樣就可以讓整個應用程序共享一種樣式了

編寫QSS

首先新建一個擴展名為.qss的文件,如style.qss,然后將其加入資源文件(.qrc)中,在style.qss文件中編寫樣式代碼,例如

QMainWindow{ border-image:url(./images/screen1.jpg);}QToolTip{ border: 1px solid rgb(45, 45, 45); background: white; color: red;}加載QSS

為了方便以后使用,可以編寫一個公共類COmmomHelper,其核心代碼如下

class CommonHelper: def __init__(self): pass @staticmethod def readQss(style): with open(style, ’r’) as f: return f.read()

然后在主函數(shù)進行加載,其核心代碼如下

app = QApplication(sys.argv) win = MainWindow() styleFile = ’./style.qss’ qssStyle = CommonHelper.readQss(styleFile) win.setStyleSheet(qssStyle) win.show() sys.exit(app.exec_())

在換樣式時,不需要全局修改,只需要CommomHelper.readQSS()讀取不同的QSS文件即可

完整代碼如下

注意第一步的qss文件的建立,下面會用到

import sysfrom PyQt5.QtWidgets import QMainWindow, QApplication, QVBoxLayout, QPushButtonclass CommonHelper: def __init__(self): pass @staticmethod def readQss(style): with open(style, ’r’) as f: return f.read()class MainWindow(QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.resize(477, 258) self.setWindowTitle('加載QSS文件') btn1 = QPushButton(self) btn1.setText(’添加’) btn1.setToolTip(’測試提示’) vbox = QVBoxLayout() vbox.addWidget(btn1) self.setLayout(vbox)if __name__ == '__main__': app = QApplication(sys.argv) win = MainWindow() styleFile = ’./style.qss’ qssStyle = CommonHelper.readQss(styleFile) win.setStyleSheet(qssStyle) win.show() sys.exit(app.exec_())

沒有加載樣式時,窗口樣式

python GUI庫圖形界面開發(fā)之PyQt5動態(tài)加載QSS樣式文件

加載樣式后,窗口樣式

python GUI庫圖形界面開發(fā)之PyQt5動態(tài)加載QSS樣式文件

本文介紹了如何在窗口運行狀態(tài)下動態(tài)加載QSS樣式文件改變窗口樣式,更多關(guān)于QSS樣式的文章請查看下面的相關(guān)鏈接

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 偏关县| 简阳市| 青阳县| 盐边县| 华池县| 文山县| 仲巴县| 体育| 杭锦旗| 崇义县| 吉水县| 霍邱县| 甘泉县| 长岛县| 安龙县| 元氏县| 新昌县| 靖边县| 仁怀市| 闽侯县| 克山县| 广丰县| 五莲县| 玉溪市| 苏州市| 清流县| 平罗县| 饶阳县| 伊宁县| 广昌县| 宾川县| 金坛市| 萍乡市| 白城市| 崇信县| 唐海县| 锡林郭勒盟| 麻城市| 镇原县| 黄龙县| 皋兰县|