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查看FTP是否能连接成功的方法
Jul 30 Python
Python3 循环语句(for、while、break、range等)
Nov 20 Python
Python 变量类型详解
Oct 10 Python
Python日志无延迟实时写入的示例
Jul 11 Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
python实现文字版扫雷
Apr 24 Python
python如何实现DES加密
Sep 21 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 Python
python des,aes,rsa加解密的实现
Jan 16 Python
python中使用np.delete()的实例方法
Feb 01 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 表单数据的获取代码
2009/03/10 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
vue组件间通信解析
2017/03/01 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python2中的raw_input() 与 input()
2015/06/12 Python
pandas string转dataframe的方法
2018/04/11 Python
详解Python发送email的三种方式
2018/10/18 Python
python中Lambda表达式详解
2019/11/20 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
全球性的在线购物网站:Zapals
2017/03/22 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
爱岗敬业演讲稿范文
2014/01/14 职场文书
出售房屋协议书范本
2014/10/06 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js