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中将阿拉伯数字转换成中文的实现代码
May 19 Python
Python实现微信公众平台自定义菜单实例
Mar 20 Python
Python中使用第三方库xlrd来读取Excel示例
Apr 05 Python
解析Python中的变量、引用、拷贝和作用域的问题
Apr 07 Python
举例区分Python中的浅复制与深复制
Jul 02 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
python如何读写json数据
Mar 21 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
Python3.5 创建文件的简单实例
Apr 26 Python
Python列表元素常见操作简单示例
Oct 25 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
python函数定义和调用过程详解
Feb 09 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
ajax缓存问题解决途径
2006/12/06 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
hessian 在PHP中的使用介绍
2010/12/13 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
原生js 秒表实现代码
2012/07/24 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
python链表类中获取元素实例方法
2021/02/23 Python
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
小学教师学期末自我评价
2013/09/25 职场文书
师范生自我鉴定范文
2013/10/05 职场文书
司机辞职报告范文
2014/01/20 职场文书
学生自我评语
2015/01/04 职场文书