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中的对象拷贝示例 python引用传递
Jan 23 Python
python集合类型用法分析
Apr 08 Python
Python调用命令行进度条的方法
May 05 Python
如何将python中的List转化成dictionary
Aug 15 Python
Python设计实现的计算器功能完整实例
Aug 18 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
python如何制作英文字典
Jun 25 Python
python判断所输入的任意一个正整数是否为素数的两种方法
Jun 27 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
详解python解压压缩包的五种方法
Jul 05 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
python并发编程多进程 互斥锁原理解析
Aug 20 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微信开发之有道翻译
2016/06/23 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
Add a Table to a Word Document
2007/06/15 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
在windows下Python打印彩色字体的方法
2018/05/15 Python
python监控文件并且发送告警邮件
2018/06/21 Python
PyQt5实现简易电子词典
2019/06/25 Python
如何使用python操作vmware
2019/07/27 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
python小白学习包管理器pip安装
2020/06/09 Python
django教程如何自学
2020/07/31 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
十月围城观后感
2015/06/08 职场文书