当前位置: 首页 > news >正文

python@pyside样式化

文章目录

    • ref
    • Widget类创建
      • 样式化文件qss
    • 引用样式并启动应用

ref

  • Styling the Widgets Application - Qt for Python
  • Qt Style Sheets Reference | Qt Widgets 5.15.12

Widget类创建

  • 创建一个简单界面(菜单+主要内容)它们是水平布局

  • 主要内容包括一段文本和一个按钮,它们是垂直布局

  • import sysfrom PySide6.QtWidgets import QWidget, QListWidget, QListWidgetItem, QLabel, QPushButton, QVBoxLayout, QHBoxLayout,QApplication
    from PySide6.QtCore import Qt
    class Widget(QWidget):def __init__(self, parent=None):super(Widget, self).__init__(parent)# Widget分为两部分:菜单menu_widdget和主要内容main_widget# 主要内容main_widget包括一段文本和一个按钮,它们以垂直的方式布局_placeholder = "Placeholder Text"menu_widget = QListWidget()for i in range(10):# 设置item内容item = QListWidgetItem(f"Item {i}")#设置item样式item.setTextAlignment(Qt.AlignCenter)#将item添加到menu中menu_widget.addItem(item)# 第二部分为QLabletext_widget = QLabel(_placeholder)# 再设置一个pushButtonbutton = QPushButton("Something")# 设置第二部分的布局为垂直布局#新建垂直骨架content_layout = QVBoxLayout()# 依次将Lable和button填充进去content_layout.addWidget(text_widget)content_layout.addWidget(button)main_widget = QWidget()#将布局加载到main_widget中main_widget.setLayout(content_layout)# 创建水平布局layout = QHBoxLayout()# 将菜单和主内容添加到水平布局,并且设置比例为1:4layout.addWidget(menu_widget, 1)layout.addWidget(main_widget, 4)# 将最终的总布局绑定到Widget上self.setLayout(layout)
    

样式化文件qss

  • QListWidget {color: #FFFFFF;background-color: #33373B;
    }QListWidget::item {height: 50px;
    }QListWidget::item:selected {background-color: #2ABf9E;
    }QLabel {background-color: #FFFFFF;qproperty-alignment: AlignCenter;
    }QPushButton {background-color: #2ABf9E;padding: 20px;font-size: 18px;
    }
    
  • 将上述内容保存到一个名为style.qss的文件中

引用样式并启动应用

  • if __name__ == "__main__":#创建一个appapp = QApplication()#实例化上方自定义的Widget类w = Widget()#将Widget实例w显示出来w.show()# 引用编写的样式style.qsswith open("style.qss", "r") as f:_style = f.read()# 将读取到的样式通过setStyleSheet应用到appapp.setStyleSheet(_style)#启动appsys.exit(app.exec())
    

    在这里插入图片描述

http://www.lryc.cn/news/37761.html

相关文章:

  • C++经典15道面试题目(文末含大题)
  • 自动计算30天内的股价最高价源代码
  • 国外SEO升级攻略!一看就懂!
  • 设计模式—适配器模式
  • OpenAI-J 如何进行测试
  • 课设-机器学习课设-实现新闻分类
  • 关于异常控制流和系统级 I/O:进程
  • Unet 基于TCGA颅脑肿瘤MRI分割(交叉熵损失+多通道输出)
  • 货物摆放(蓝桥杯C/C++省赛)
  • mysql 索引原理
  • 【Linux】文件系统详解
  • 3句代码,实现自动备份与版本管理
  • 华为OD机试题 - 删除指定目录(JavaScript)| 机考必刷
  • 3分钟上手,2小时起飞!教你玩转OceanBase Cloud
  • location对象详解
  • 【强度混合和波段自适应细节融合:PAN-Sharpening】
  • 【随笔】《挥手自兹去》
  • 华为OD机试题 - 最差产品奖(JavaScript)| 机考必刷
  • 虚拟化介绍
  • c/c++开发,无可避免的模板编程实践(篇十)-c++11原位构造元素(emplace)
  • 基于bash通过cdo批处理数据
  • Map和Set总结
  • pytorch网络模型构建中的注意点
  • 面试时候这样介绍redis,redis经典面试题
  • 机械学习 - scikit-learn - 数据预处理 - 2
  • 华为OD机试题 - 最长连续交替方波信号(JavaScript)| 机考必刷
  • executor行为相关Spark sql参数源码分析
  • 双通道5.2GSPS(或单通道10.4GSPS)射频采样FMC+模块
  • 理解java反射
  • EasyRcovery16免费的电脑照片数据恢复软件