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之玩转字符串(2)更新篇
Sep 28 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
谈谈python中GUI的选择
Mar 01 Python
python 读入多行数据的实例
Apr 19 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
Python数据分析matplotlib设置多个子图的间距方法
Aug 03 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
python 阶乘累加和的实例
Feb 01 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
python获取对象信息的实例详解
Jul 07 Python
Pandas实现批量拆分与合并Excel的示例代码
May 30 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
加强版phplib的DB类
2008/03/31 PHP
php使用codebase生成随机数
2014/03/25 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python模块结构与布局操作方法实例分析
2017/07/24 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
Python pymongo模块用法示例
2018/03/31 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
python全栈知识点总结
2019/07/01 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
Gap英国官网:Gap UK
2018/07/18 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
优秀体育委员自荐书
2014/01/31 职场文书
毕业自我鉴定总结
2014/03/24 职场文书
教师求职自荐信
2015/03/26 职场文书
奖金申请报告模板
2015/05/15 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
Pandas 稀疏数据结构的实现
2021/07/25 Python