PyQt5每天必学之QSplitter实现窗口分隔


Posted in Python onApril 19, 2018

QSplitter使用户可以通过拖动子面板的边界控制子面板的大小。在我们的例子中,我们使用了两个QSplitter 对三个QFrame 控件进行了分隔。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个例子说明如何使用QSplitter部件。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年8月4日
"""

import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QHBoxLayout, 
QFrame, QSplitter)
from PyQt5.QtCore import Qt

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI()

  def initUI(self):

    hbox = QHBoxLayout(self)

    topleft = QFrame(self)
    topleft.setFrameShape(QFrame.StyledPanel)

    topright = QFrame(self)
    topright.setFrameShape(QFrame.StyledPanel)

    bottom = QFrame(self)
    bottom.setFrameShape(QFrame.StyledPanel)

    splitter1 = QSplitter(Qt.Horizontal)
    splitter1.addWidget(topleft)
    splitter1.addWidget(topright)

    splitter2 = QSplitter(Qt.Vertical)
    splitter2.addWidget(splitter1)
    splitter2.addWidget(bottom)

    hbox.addWidget(splitter2)
    self.setLayout(hbox)

    self.setGeometry(300, 300, 300, 200)
    self.setWindowTitle('窗口分隔')    
    self.show()

if __name__ == '__main__':

  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

在我们的例子中,我们使用了三个框架部件和两个QSplitter 。请注意,某些主题的QSplitter 边界可能不可见。

 topleft = QFrame(self)
topleft.setFrameShape(QFrame.StyledPanel)

我们为QFrame 控件添加StyledPanel样式能使QFrame 控件之间的界限更加明显。

splitter1 = QSplitter(Qt.Horizontal)
splitter1.addWidget(topleft)
splitter1.addWidget(topright)

我们创建了一个QSplitter控件,并添加两个QFrame 进去。

splitter2 = QSplitter(Qt.Vertical)
splitter2.addWidget(splitter1)

We can also add a splitter to another splitter widget. 我们还可以添加一个QSplitter到另一个QSplitter控件中。

程序执行后

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 从远程服务器下载东西的代码
Feb 10 Python
Python中装饰器的一个妙用
Feb 08 Python
Python多线程编程(二):启动线程的两种方法
Apr 05 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
深入讲解Python中面向对象编程的相关知识
May 25 Python
在Django的模板中使用认证数据的方法
Jul 23 Python
在CentOS6上安装Python2.7的解决方法
Jan 09 Python
python中for循环输出列表索引与对应的值方法
Nov 07 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
Python多项式回归的实现方法
Mar 11 Python
python之生产者消费者模型实现详解
Jul 27 Python
python对接ihuyi实现短信验证码发送
May 10 Python
python 读入多行数据的实例
Apr 19 #Python
Python 绘图库 Matplotlib 入门教程
Apr 19 #Python
python 列表删除所有指定元素的方法
Apr 19 #Python
Python 机器学习库 NumPy入门教程
Apr 19 #Python
python 显示数组全部元素的方法
Apr 19 #Python
PyQt5每天必学之进度条效果
Apr 19 #Python
python中实现将多个print输出合成一个数组
Apr 19 #Python
You might like
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
试用php中oci8扩展
2015/06/18 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
详解php中的implements 使用
2017/06/13 PHP
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[02:15]2015国际邀请赛选手档案IG.Ferrari 430
2015/07/30 DOTA
wxPython框架类和面板类的使用实例
2014/09/28 Python
Python类定义和类继承详解
2015/05/08 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
常住证明范本
2015/06/23 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
MYSQL 运算符总结
2021/11/11 MySQL
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS