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编程时利用wxPython来支持多线程的方法
Apr 07 Python
Python实现的简单算术游戏实例
May 26 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
python Django框架实现自定义表单提交
Mar 25 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
python对文件目录的操作方法实例总结
Jun 24 Python
Python Matplotlib 基于networkx画关系网络图
Jul 10 Python
python爬虫中多线程的使用详解
Sep 23 Python
使用Python的turtle模块画国旗
Sep 24 Python
django正续或者倒序查库实例
May 19 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
Python selenium的这三种等待方式一定要会!
Jun 10 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代码质量36计
2012/09/05 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
PHP 网站修改默认访问文件的nginx配置
2017/05/27 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
js中匿名函数的创建与调用方法分析
2014/12/19 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
详解python while 函数及while和for的区别
2018/09/07 Python
PyTorch中permute的用法详解
2019/12/30 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
工业设计专业推荐信
2013/10/29 职场文书
学生励志演讲稿
2014/01/06 职场文书
中文教师求职信
2014/02/22 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书