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实现猜数字游戏(无重复数字)示例分享
Mar 29 Python
零基础写python爬虫之抓取糗事百科代码分享
Nov 06 Python
简单介绍Python中的RSS处理
Apr 13 Python
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
python清除字符串前后空格函数的方法
Oct 21 Python
python+opencv实现阈值分割
Dec 26 Python
django中使用POST方法获取POST数据
Aug 20 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
Feb 26 Python
Python configparser模块配置文件过程解析
Mar 03 Python
windows下Pycharm安装opencv的多种方法
Mar 05 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中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
php使用递归与迭代实现快速排序示例
2014/01/23 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
python定向爬取淘宝商品价格
2018/02/27 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
Python requests接口测试实现代码
2020/09/08 Python
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
大学生毕业的自我鉴定
2013/11/13 职场文书
如何填写个人简历自我评价
2013/12/10 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS