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

PyQt6之容器布局

示例代码:

# _*_ coding: UTF-8 _*_
# 开发团队 : 大军安全
# 开发人员 : Dreams
# 开发时间 : 2025/9/19 22:03
# 文件名称 : frame.py
# 开发工具 :  PyCharm
# 开发任务 :  容器布局示例
import sysfrom PyQt6.QtWidgets import QWidget, QApplication, QFrame, QVBoxLayout, QPushButton, QComboBox, QHBoxLayout, QLabelclass DemoFrame(QWidget):def __init__(self):super(DemoFrame, self).__init__()self.setWindowTitle("Demo Frame")self.setFixedSize(500, 350)# 创建分隔对象self.frame = QFrame()self.frame.setFrameStyle(QFrame.Shape.Panel)self.frame.setLineWidth(1)self.frame.setMidLineWidth(1)self.frame.setFixedSize(480, 200)# 创建外垂直布局self.vLayout = QVBoxLayout(self)self.vLayout.addSpacing(10)self.vLayout.addWidget(self.frame)self.vLayout.addStretch(20)self.vLayout.addStretch()# 创建分隔容器中使用的控件self.btn1 = QPushButton("设置LineWidth")self.btn2 = QPushButton("设置midline")self.btn3 = QPushButton("设置FrameShape")self.btn4 = QPushButton("设置FrameShadow")self.cb1 = QComboBox()self.cb1.addItems(["1","2","3"])self.cb2 = QComboBox()self.cb2.addItems(["1","2","3"])self.cb3 = QComboBox()self.cb3.addItems(["NoFrame", "Box", "Panel", "StyledPanel"])self.cb4 = QComboBox()self.cb4.addItems(["Sunken", "Plain", "Raised"])# 创建水平布局1,分别加入标签、下拉列表框、命令按钮对象、加入外垂直布局hLayout1 = QHBoxLayout()hLayout1.addWidget(QLabel("LineWidth:"))hLayout1.addWidget(self.cb1)hLayout1.addWidget(self.btn1)self.vLayout.addLayout(hLayout1)# 创建水平布局2,分别加入标签、下拉列表框、命令按钮对象、加入外垂直布局hLayout2 = QHBoxLayout()hLayout2.addWidget(QLabel("MidLineWIdth:"))hLayout2.addWidget(self.cb2)hLayout2.addWidget(self.btn2)self.vLayout.addLayout(hLayout2)# 创建水平布局3,分别加入标签、下拉列表框、命令按钮对象、加入外垂直布局hLayout3 = QHBoxLayout()hLayout3.addWidget(QLabel("FrameShape:"))hLayout3.addWidget(self.cb3)hLayout3.addWidget(self.btn3)self.vLayout.addLayout(hLayout3)# 创建水平布局4,分别加入标签、下拉列表框、命令按钮对象、加入外垂直布局hLayout4 = QHBoxLayout()hLayout4.addWidget(QLabel("FrameShadow:"))hLayout4.addWidget(self.cb4)hLayout4.addWidget(self.btn4)self.vLayout.addLayout(hLayout4)# 关联4个命令按钮对应的槽函数self.btn1.clicked.connect(self.setLineWidth)self.btn2.clicked.connect(self.setMidLineWidth)self.btn3.clicked.connect(self.setFrameShape)self.btn4.clicked.connect(self.setFrameShadow)# 设置线宽、形状、方向和阴影def setLineWidth(self):value = int(self.cb1.currentText())self.frame.setLineWidth(value)def setMidLineWidth(self):value = int(self.cb2.currentText())self.frame.setMidLineWidth(value)def setFrameShape(self):if self.cb3.currentText() == "NoFrame":self.frame.setFrameShape(QFrame.Shape.NoFrame)elif self.cb3.currentText() == "Box":self.frame.setFrameShape(QFrame.Shape.Box)elif self.cb3.currentText() == "Panel":self.frame.setFrameShape(QFrame.Shape.Panel)elif self.cb3.currentText() == "StyledPanel":self.frame.setFrameShape(QFrame.Shape.StyledPanel)def setFrameShadow(self):if self.cb4.currentText() == "Sunken":self.frame.setFrameShadow(QFrame.Shadow.Sunken)elif self.cb4.currentText() == "Plain":self.frame.setFrameShadow(QFrame.Shadow.Plain)elif self.cb4.currentText() == "Raised":self.frame.setFrameShadow(QFrame.Shadow.Raised)if __name__ == '__main__':app = QApplication(sys.argv)demo = DemoFrame()demo.show()demo.raise_()sys.exit(app.exec())

示例效果:

http://www.dtcms.com/a/390797.html

相关文章:

  • Linux网络:HTTPS协议
  • 【Linux】进程概念(三):深入剖析操作系统学科的进程状态理论体系与 Linux 系统下的浅度睡眠、深度睡眠、停止、僵尸、死亡等具体进程状态
  • java面试Day2 | mysql优化、索引、事务、并发事务、MVCC、主从同步、分库分表
  • 怎么用文字生成视频:从本土到海外的软件工具选择指南
  • Git远程与本地仓库关联指南(含推送冲突解决方案)
  • uniapp u-popup弹窗展示时禁止底部内容滚动,禁止滑动遮罩层滚动
  • 赛灵思 XCVU13P-2FIGD2104E XilinxFPGA VirtexUltraScale+
  • 基于非线性MPC的自动驾驶路径跟踪与避障控制器设计(Matlab实现)
  • 使用云手机进行烈火一刀挂机多开的优势
  • 造成云手机黑屏的原因有哪些?
  • 智能电视玩机攻略_开启设备隐藏ADB 自由安装第三方应用
  • 微服务项目->在线oj系统(Java-Spring)----2.0
  • Swift闭包使用详情
  • STM32,新手学习
  • 保险丝Fuse
  • Kafka的持久化及副本机制总结
  • c() 函数在 R 中的用途详解
  • 使用Rsync+sersync实现数据实时同步
  • 关于conda forge长时间solving的问题以及如何解决
  • 前端学习手册-JavaScript基础语法(十)
  • 如何在 Linux 服务器上查看 GPU 型号与 CUDA 版本?
  • LeetCode hot 100 解题思路记录(三)
  • 小程序移动端设计UI(二)酒店自助入住小程序—东方仙盟练气期
  • 解决pnpm中的 Pinia 版本冲突:Cannot read properties of undefined (reading ‘_s‘)
  • 说一说大模型后训练的流程
  • 【微实验】激光测径系列(三)
  • Vim 使用从入门到精通
  • 快速实现 Excel 表格转 SVG:Java 教程
  • [极客大挑战 2019]LoveSQL
  • Excel和WPS表格中选中全部空单元格并输入相同内容