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

您的位置:首頁技術文章
文章詳情頁

python GUI庫圖形界面開發之PyQt5動態加載QSS樣式文件

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

在Qt中經常需要使用樣式,為了降低耦合性(與邏輯代碼分離),我們通常會定義一個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()

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

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庫圖形界面開發之PyQt5動態加載QSS樣式文件

加載樣式后,窗口樣式

python GUI庫圖形界面開發之PyQt5動態加載QSS樣式文件

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 民权县| 江源县| 当雄县| 通榆县| 灵川县| 广宗县| 岳阳市| 洪洞县| 老河口市| 化州市| 合肥市| 新昌县| 班戈县| 筠连县| 阿图什市| 迁安市| 玉林市| 方山县| 盱眙县| 章丘市| 洪雅县| 冕宁县| 抚宁县| 三台县| 景宁| 新野县| 宁津县| 收藏| 新津县| 祁东县| 三原县| 罗平县| 柘荣县| 剑河县| 广安市| 永福县| 随州市| 鹿泉市| 临海市| 额敏县| 望都县|