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中使用SimpleParse模块进行解析的教程
Apr 11 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
python进行文件对比的方法
Dec 24 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
python中class的定义及使用教程
Sep 18 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
使用python去除图片白色像素的实例
Dec 12 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 Python
python speech模块的使用方法
Sep 09 Python
python 爬虫请求模块requests详解
Dec 04 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正则表达匹配中文问题分析小结
2012/03/25 PHP
php无限遍历目录示例
2014/02/21 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
php实现等比例压缩图片
2018/07/26 PHP
js同时按下两个方向键
2007/12/01 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
javascript常用函数(1)
2015/11/04 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
Android笔试题总结
2014/11/29 面试题
个人社会实践自我鉴定
2014/03/24 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
优秀家长事迹材料
2014/05/17 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
小石潭记导游词
2015/02/03 职场文书
小学教师求职信范文
2015/03/20 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
Python入门之使用pandas分析excel数据
2021/05/12 Python
Linux中sftp常用命令整理
2022/06/28 Servers