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使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
python访问sqlserver示例
Feb 10 Python
python集合类型用法分析
Apr 08 Python
浅谈Python单向链表的实现
Dec 24 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
python修改FTP服务器上的文件名
Sep 11 Python
详解使用Python下载文件的几种方法
Oct 13 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
python如何获取apk的packagename和activity
Jan 10 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
关于python的缩进规则的知识点详解
Jun 22 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 获取远程文件内容的函数代码
2010/03/24 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
功能强大的php文件上传类
2016/08/29 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
javascript function、指针及内置对象
2009/02/19 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
将python图片转为二进制文本的实例
2019/01/24 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
服装设计行业个人的自我评价
2013/12/20 职场文书
简历自我评价模版
2014/01/31 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
升学宴主持词
2014/04/02 职场文书
协议书的格式
2014/04/23 职场文书
表扬稿格式范文
2015/01/16 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL