106.PyQt5

发布时间:2024-11-22 22:33

一份熟红薯(100克)热量约106卡路里 #生活知识# #饮食生活# #食物热量表#

失心疯_2023 已于 2024-02-20 11:41:28 修改

于 2023-05-31 15:50:59 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

在这里插入图片描述

我 的 个 人 主 页: 失心疯的个人主页
入 门 教 程 推 荐 : Python零基础入门教程合集
虚 拟 环 境 搭 建 : Python项目虚拟环境(超详细讲解)
PyQt5 系 列 教 程: Python GUI(PyQt5)文章合集
Oracle数据库教程: Oracle数据库文章合集
优 质 资 源 下 载 : 资源下载合集

在这里插入图片描述

QSplitter 可拉伸区域分隔器控件

描述

QSplitter是一个特殊的布局管理器,它可以动态地拖动子控件之间的边界,允许用户通过拖动子控件之间的边界来控制它们的大小,任何数量的小部件都可以由单个拆分器控制,是一个动态的布局管理器。QSplitter类实现了分离器,分离器用于分离部件,用户可通过拖动部件之间的分界线来调整子部件的大小

继承自:QFrame

效果图

在这里插入图片描述

功能作用

构造函数

QSplitter(parent) # 创建QSplitter对象的同时设置父控件 QSplitter(Qt.Orientation, parent) # 创建指定布局方向QSplitter对象的同时设置父控件 # 参数 Qt.Orientation # Qt.Horizontal # 水平方向 # Qt.Vertical # 垂直方向 12345 布局方向

setOrientation(Qt.Orientation) # 设置布局管理器布局方向 # 参数 Qt.Orientation # Qt.Horizontal # 水平方向 # Qt.Vertical # 垂直方向 1234 管理器大小

resize(int) # 设置QSplitter管理器大小 sizes(self) -> QSize # 获取QSplitter管理器的大小 12 小部件大小

setSizes(list: Iterable[int]) # 设置QSplitter管理器小部件的初始大小 # 需要在添加子控件之后设置才有效 saveState() # 保存小部件大小 restoreState() # 恢复小部件的大小 12345 小部件拉伸系数

setStretchFactor(index, stretch) # 给指定索引小部件设置拉伸因子系数 # 小部件的宽度则为控件宽度*拉伸系数 12 子控件操作

addWidget(QWidget) # 添加控件到QSplitter管理器的布局中 insertWidget(index, QWidget) # 根据指定索引将控件插入到QSplitter管理器的布局中 replaceWidget(index, QWidget) -> QWidget # 将指定索引位置控件替换为指定控件 widget(index) -> QWidget # 获取指定索引位置子控件 1234567 获取子控件索引

indexOf(QWidget) -> int # 获取指定控件在QSplitter管理器中的索引 1 子控件数量

count() # 获取QSplitter管理器中子控件的数量 1 子控件大小调整

setOpaqueResize(bool) # 设置子控件是否跟随QSplitter管理器子部件大小调整 # 设置为False时,仅在调整大小操作结束时调整子控件的大小 12

可用信号

splitterMoved(pos: int, index: int) # 小部件边框移动时发射该信号,传递边框前小部件尺寸和边框后小部件索引 1 Qt Designer中如何添加QSplitter

在Qt Designer(设计器)的控件工具箱中并没有QSplitter这个控件

添加QSplitter步骤

1、同时选中需要被添加到QSplitter分割器中的控件(需要同时选中)

2、鼠标右键 ——> 布局 ——> 使用分裂器水平/垂直布局

在这里插入图片描述

也可以使用工具栏中的 使用分裂器水平/垂直布局 工具

在这里插入图片描述

注意事项

【使用分裂器水平/垂直布局】选项是灰的无法点击,原因有二点

只选中了一个控件,需要同时选中多个控件 所选中控件的父控件,已经有布局了,需要先打破父控件的布局 代码示例示例1:QSplitter-功能作用

from PyQt5.Qt import * import sys class Windows(QWidget): def __init__(self): super().__init__() self.setWindowTitle('QSplitter-功能演示') self.resize(500, 300) self.widget_list() def widget_list(self): self.add_widget() def add_widget(self): spl = QSplitter(Qt.Horizontal, self) frame_1 = QFrame() frame_1.setFrameShape(QFrame.StyledPanel) texte = QTextEdit() texte2 = QTextEdit() frame_2 = QFrame() frame_2.setFrameShape(QFrame.StyledPanel) cmb = QComboBox() cmb.addItems(['湖南','湖北','广东','广西']) # spl.setSizes([100, 400]) spl.addWidget(cmb) spl.addWidget(texte) # vlayout = QVBoxLayout() # vlayout.addWidget(spl, 1) # vlayout.addWidget(frame_2, 2) # self.setLayout(vlayout) vspl = QSplitter(Qt.Vertical, self) vspl.addWidget(spl) vspl.addWidget(frame_2) hlayout = QHBoxLayout() hlayout.addWidget(vspl) self.setLayout(hlayout) print(vspl.count()) spl.splitterMoved.connect(lambda v1,v2: print(v1, v2)) vspl.splitterMoved.connect(lambda v1,v2: print(v1, v2)) if __name__ == '__main__': app = QApplication(sys.argv) window = Windows() window.show() sys.exit(app.exec_()) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 示例2:QSplitter-测试

from PyQt5.Qt import * import sys class Windows(QWidget): def __init__(self): super().__init__() self.setWindowTitle('QSplitter-测试') self.resize(500, 300) self.widget_list() def widget_list(self): splitter1 = QSplitter(self) splitter1.setOrientation(Qt.Horizontal) splitter2 = QSplitter(self) splitter2.setOrientation(Qt.Horizontal) splitter3 = QSplitter(Qt.Vertical, self) splitter1.resize(400, 200) t1 = QTextEdit() t2 = QTextEdit() t3 = QTextEdit() t4 = QTextEdit() splitter1.addWidget(t1) splitter1.addWidget(t2) splitter2.addWidget(t3) splitter2.addWidget(t4) splitter1.setSizes([400, 100]) # 通过垂直布局添加两个横向QSplitter管理器,上下无法移动 vlayout = QVBoxLayout() vlayout.addWidget(splitter1) vlayout.addWidget(splitter2) self.setLayout(vlayout) # 通过垂直QSplitter管理器添加 # splitter3.addWidget(splitter1) # splitter3.addWidget(splitter2) print(splitter1.size()) splitter1.splitterMoved.connect(lambda v1, v2: print(v1, v2)) if __name__ == '__main__': app = QApplication(sys.argv) window = Windows() window.show() sys.exit(app.exec_()) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

网址:106.PyQt5 https://www.yuejiaxmz.com/news/view/198819

相关内容

QT
周末家长慧(第106期)| 亲子生活7个好习惯助力新学期
构建厨房灶火监控与提醒系统:基于NanoDet的深度学习目标检测解决方案
4个月时间,体重从138斤减到106斤:4个被低估的减肥方法
室内设计毕业论文参考文献(2020年最新106个),参考文献
工程训练赛——智能垃圾分类
探索 Time Manager:一个强大的时间管理工具
python控制小爱同学
生存智慧106:什么是心理健康
关于一次什么的体验作文600字(通用106篇)

随便看看