python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例


Posted in Python onMarch 06, 2020

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_())

运行效果如下

python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例

代码分析

在这个例子中,显示了使用两个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布局控件的使用知识请查看下面的相关链接

Python 相关文章推荐
Python查看多台服务器进程的脚本分享
Jun 11 Python
python文件和目录操作函数小结
Jul 11 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
Python应用库大全总结
May 30 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
Python3.5装饰器典型案例分析
Apr 30 Python
pyqt5 实现工具栏文字图片同时显示
Jun 13 Python
pytorch 输出中间层特征的实例
Aug 17 Python
numpy求平均值的维度设定的例子
Aug 24 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 Python
python process模块的使用简介
May 14 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 #Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 #Python
Python使用ElementTree美化XML格式的操作
Mar 06 #Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 #Python
Python 批量读取文件中指定字符的实现
Mar 06 #Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 #Python
python3 xpath和requests应用详解
Mar 06 #Python
You might like
聊天室php&mysql(四)
2006/10/09 PHP
用文本文件制作留言板提示(下)
2006/10/09 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
AutoSave/自动存储功能实现
2007/03/24 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
如何编写jquery插件
2017/03/29 jQuery
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
python实现从web抓取文档的方法
2014/09/26 Python
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
python实用代码片段收集贴
2015/06/03 Python
Python读取Excel的方法实例分析
2015/07/11 Python
python从入门到精通(DAY 2)
2015/12/20 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
触摸春天教学反思
2014/02/03 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
关于学习的决心书
2015/02/05 职场文书
母亲去世追悼词
2015/06/23 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
js实现自动锁屏功能
2021/06/02 Javascript
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技