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正则表达式匹配ip地址实例
Oct 09 Python
python实现超简单端口转发的方法
Mar 13 Python
Python中的pass语句使用方法讲解
May 14 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
python函数的5种参数详解
Feb 24 Python
python简单实例训练(21~30)
Nov 15 Python
Python中单、双下划线的区别总结
Dec 01 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
python 消除 futureWarning问题的解决
Dec 25 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函数utf8转gb2312编码
2006/12/21 PHP
php 应用程序安全防范技术研究
2009/09/25 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
浅谈$('div a') 与$('div>a')的区别
2016/07/18 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
javascript代码优化的8点总结
2018/01/29 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
利用Python开发实现简单的记事本
2016/11/15 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
如何通过命令行进入python
2020/07/06 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
安卓程序员求职信
2014/02/28 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
MYSQL 表的全面总结
2021/11/11 MySQL
Java设计模式之代理模式
2022/04/22 Java/Android