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 相关文章推荐
Django URL传递参数的方法总结
Aug 28 Python
K-近邻算法的python实现代码分享
Dec 09 Python
tensorflow获取变量维度信息
Mar 10 Python
Python 2.7中文显示与处理方法
Jul 16 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
python初步实现word2vec操作
Jun 09 Python
Python如何设置指定窗口为前台活动窗口
Aug 12 Python
如何利用pycharm进行代码更新比较
Nov 04 Python
python文件目录操作之os模块
May 08 Python
python+opencv实现目标跟踪过程
Jun 21 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获取网卡地址的代码
2008/04/09 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
Vue自定义多选组件使用详解
2020/09/08 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
Python装饰器基础详解
2016/03/09 Python
python3.x上post发送json数据
2018/03/04 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
python 5个实用的技巧
2020/09/27 Python
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
公司财务工作总结的自我评价
2013/11/23 职场文书
会计岗位描述
2014/02/22 职场文书
品牌推广策划方案
2014/05/28 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL