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实现BackPropagation算法
Dec 14 Python
Python实现判断一行代码是否为注释的方法
May 23 Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 Python
Django实现表单验证
Sep 08 Python
python简易实现任意位数的水仙花实例
Nov 13 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
使用Python打造一款间谍程序的流程分析
Feb 21 Python
python程序输出无内容的解决方式
Apr 09 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
python tkinter实现定时关机
Apr 21 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 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 IN_ARRAY 函数使用注意事项
2010/07/24 PHP
PHP 读取和编写 XML
2014/11/19 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
angularjs基础教程
2014/12/25 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
2018/01/29 jQuery
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
详解React 元素渲染
2020/07/07 Javascript
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
如何通过python计算圆周率PI
2020/11/11 Python
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
农村婚礼证婚词
2014/01/10 职场文书
运动会解说词200字
2014/02/06 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
2015年环卫工作总结
2015/04/28 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android