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实现基于HTTP文件传输实例
Nov 08 Python
python正则表达式match和search用法实例
Mar 26 Python
分享一个常用的Python模拟登陆类
Mar 29 Python
python使用clear方法清除字典内全部数据实例
Jul 11 Python
Python找出最小的K个数实例代码
Jan 04 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 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/06/13 PHP
php学习笔记之面向对象
2014/11/08 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
js中的面向对象入门
2017/03/06 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
node.js连接mysql与基本用法示例
2019/01/05 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
linux 下实现python多版本安装实践
2014/11/18 Python
简单实现python爬虫功能
2015/12/31 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
python实现微信自动回复机器人功能
2019/07/11 Python
python文件读写代码实例
2019/10/21 Python
python 实现超级玛丽游戏
2020/11/25 Python
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
struct和class的区别
2015/11/20 面试题
EJB实例的生命周期
2016/10/28 面试题
扬尘污染防治方案
2014/06/15 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
趣味运动会标语口号
2015/12/26 职场文书