电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:74日期: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 編程
相關文章:
主站蜘蛛池模板: 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 上海阳光泵业制造有限公司 -【官方网站】 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 仪器仪表网 - 永久免费的b2b电子商务平台 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | 金属波纹补偿器厂家_不锈钢膨胀节价格_非金属伸缩节定制-庆达补偿器 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 房屋质量检测-厂房抗震鉴定-玻璃幕墙检测-房屋安全鉴定机构 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 盛源真空泵|空压机-浙江盛源空压机制造有限公司-【盛源官网】 | 浙江皓格药业有限公司| 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 鑫达滑石-辽宁鑫达滑石集团 | 一点车讯-汽车网站,每天一点最新车讯!| 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 广州小程序开发_APP开发公司_分销商城系统定制_小跑科技 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | 一路商机网-品牌招商加盟优选平台-加盟店排行榜平台 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 |