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使用scrapy解析js示例
Jan 23 Python
Python中的闭包实例详解
Aug 29 Python
python中global用法实例分析
Apr 30 Python
django之常用命令详解
Jun 30 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
目前最全的python的就业方向
Jun 05 Python
django如何连接已存在数据的数据库
Aug 14 Python
Python类装饰器实现方法详解
Dec 21 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
Django中的AutoField字段使用
May 18 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
Django与数据库交互的实现
Jun 03 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学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
PHP pear安装配置教程
2016/05/14 PHP
php 浮点数比较方法详解
2017/05/05 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
单位介绍信范文
2014/01/18 职场文书
小学校本教研总结
2015/08/13 职场文书