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 相关文章推荐
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
学习Python selenium自动化网页抓取器
Jan 20 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
Python批量发送post请求的实现代码
May 05 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
Dec 10 Python
Python3内置模块之base64编解码方法详解
Jul 13 Python
python通过http下载文件的方法详解
Jul 26 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
用python对excel查重
Dec 07 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的优点与缺点
2013/04/11 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
python中metaclass原理与用法详解
2019/06/25 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
护理专业毕业生自我鉴定
2013/10/08 职场文书
毕业生实习鉴定
2013/12/11 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
篮球比赛口号
2014/06/10 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
任命书标准格式
2015/03/02 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
oracle数据库去除重复数据
2022/05/20 Oracle
vue中data里面的数据相互使用方式
2022/06/05 Vue.js