python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
作者:jia666666 发布时间:2023-06-20 22:10:04
标签:python,PyQt5,布局
PyQt5动态(可拖动控件大小)布局控件QSplitter简介
PyQt还提供了特殊的布局管理器QSplitter。它可以动态地拖动子控件之间的边界,算是一个动态的布局管理器,QSplitter允许用户拖动子控件的边界控制子控件的大小,并提供一个处理拖曳子控件的控制器
在QSplitter对象中各子控件默认是横向布局的,可以使用Qt,Vertical进行垂直布局
QSplitter类中常用的方法
方法 | 描述 |
---|---|
addWidget() | 将小控件添加到QSplitter管理器的布局中 |
indexOf() | 返回小控件在QSplitter管理器中的索引 |
insertWidget() | 根据指定的索引将一个控件插入到QSplitter管理器中 |
setOrientation() | 设置布局的方向 |
Qt.Horizontal:水平方向 | |
Qt.Vertical:垂直方向 | |
setSizes() | 设置控件的初始大小 |
count() | 返回小控件在QSplitter管理器中的数量 |
QSplitter的使用实例
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class SplitterExample(QWidget):
def __init__(self):
super(SplitterExample, self).__init__()
self.initUI()
def initUI( self ):
#设置全局布局为水平布局,设置标题与初始大小窗口
hbox=QHBoxLayout()
self.setWindowTitle("QSplitter例子")
self.setGeometry(300,300,300,200)
#实例化QFrame控件
topLeft=QFrame()
topLeft.setFrameShape(QFrame.StyledPanel)
bottom=QFrame()
bottom.setFrameShape(QFrame.StyledPanel)
#实例化QSplitter控件并设置初始为水平方向布局
splitter1=QSplitter(Qt.Horizontal)
textedit=QTextEdit()
#向Splitter内添加控件。并设置游戏的初始大小
splitter1.addWidget(topLeft)
splitter1.addWidget(textedit)
splitter1.setSizes([100,200])
#实例化Splitter管理器,添加控件到其中,设置垂直方向
splitter2=QSplitter(Qt.Vertical)
splitter2.addWidget(splitter1)
splitter2.addWidget(bottom)
#设置窗体全局布局以及子布局的添加
hbox.addWidget(splitter2)
self.setLayout(hbox)
if __name__ == '__main__':
app=QApplication(sys.argv)
demo=SplitterExample()
demo.show()
sys.exit(app.exec_())
运行效果如下
代码分析
在这个例子中,显示了使用两个QSplitter组织的两个QFame控件,其中第一个QSplitter对象包含一个QFrame对象和QTextEdit对象,并按照水平方向进行布局
splitter1=QSplitter(Qt.Horizontal)
textedit=QTextEdit()
#向Splitter内添加控件。并设置游戏的初始大小
splitter1.addWidget(topLeft)
splitter1.addWidget(textedit)
splitter1.setSizes([100,200])
第二个QSplitter对象添加第一个QSplitter对象和一个QFrame对象,并按照垂直布局
splitter2=QSplitter(Qt.Vertical)
splitter2.addWidget(splitter1)
splitter2.addWidget(bottom)
本文主要介绍了PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例,更多关于PyQt5布局控件的使用知识请查看下面的相关链接
来源:https://blog.csdn.net/jia666666/article/details/81705675


猜你喜欢
- 本文实例讲述了Python随机生成彩票号码的方法。分享给大家供大家参考。具体如下:前些日子在淘宝上买了一阵子彩票,每次都是使用淘宝的机选,每
- 编解码器在字符与字节之间的转换过程称为编解码,Python自带了超过100种编解码器,比如:ascii(英文体系)gb2312(中文体系)u
- 前言本文主要给大家介绍了关于python3中全角和半角字符转换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。一
- 互斥锁在Golang中,互斥锁(Mutex)是一种基本的同步原语,用于实现对共享资源的互斥访问。互斥锁通过在代码中标记临界区来控制对共享资源
- 1.简要概述为什么要开通MySQL这个学习板块呢?因为这是一名数据分析师必要的一项技能。分析数据什么最重要?当然是数据,既然如此!在数据呈现
- javascript版 俄罗斯方块(Russian box)小游戏,喜欢的朋友可以玩玩。对源代码感兴趣的朋友也可以研究一下。玩法介绍:可以输
- 前言Golang 是一种并发友好的语言,使用 goroutines 和 channels 可以轻松地实现多线程爬虫。具体地说,实现的是多协程
- 目录房价数据分析数据简单清洗各区均价分析全市二手房装修程度分析各区二手房数量所占比比例热门户型均价分析总结房价数据分析数据简单清洗data.
- 一、安装selenium打开命令控制符输入:pip install -U selenium火狐浏览器安装firebug:www.firebu
- 本文针对MySQL数据库基本操作进行学习研究,需要了解的朋友不要错过这篇文章。以下均是在Windows 64位操作系统下的命令行使用。学习之
- 本文实例讲述了Python实现查找两个字典相同点的方法。分享给大家供大家参考,具体如下:问题:寻找两个字典中间相同的地方(相同的键、相同的值
- 从这篇开始,用一个新的系列文章去介绍和学习MySQL。为什么要学习MySQL,从产品角度来说,大部分软件的数据库服务还是采取关系型数据库,主
- 当我们执行某个Python代码,例如文件mycode.py时,想要传递一些可以随时改变的自定义的参数。比如在训练神经网络的时候,我们为了方便
- 一、跨域是什么从一个域名去请求另一个域名,这个过程称之为跨域。浏览器从一个域名的网页去请求另一个域名的资源,域名、端口、协议有一个不一样,请
- 本文实例为大家分享了Golang实现断点续传的具体代码,供大家参考,具体内容如下1、将文件pic_src.jpg复制到pic_des.jpg
- 虽然今年名义上已经不再管人了,但也不得不掺和进很多人事,这里想简单说说,即使不能帮助这个行业的从业者规划职业道路,也算是把之前摸过的路小结一
- 前言MySQL是一个高速度、高性能、多线程、开放源代码,建立在客户/服务器(Client/Server)结构上的关系型数据库管理系(RDBM
- 前言前段时间在微博看到一段摸鱼人的倒计时模板,感觉还挺有趣的。于是我用了一小时的时间写了个页面出来 摸鱼办地址 (当然是摸鱼的时间啦)。模板
- Pandas中对 时间 这个属性的处理有非常非常多的操作。而本文对其中一个大家可能比较陌生的方法进行讲解。其他的我会陆续上传。应用情景是这样
- 本文实例为大家分享了微信小程序实现电影App导航和轮播的具体代码,供大家参考,具体内容如下最终的目的:底部:我们要搞好这样的底部要在app.