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 代码性能优化技巧分享
Aug 07 Python
python下os模块强大的重命名方法renames详解
Mar 07 Python
Python 专题三 字符串的基础知识
Mar 19 Python
如何用Python合并lmdb文件
Jul 02 Python
python实现AES加密解密
Mar 28 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
Django中和时区相关的安全问题详解
Oct 12 Python
python用opencv 图像傅里叶变换
Jan 04 Python
pytorch中index_select()的用法详解
Jan 06 Python
python数字图像处理:图像简单滤波
Jun 28 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
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
尽可能写"友好"的"Javascript"代码
2007/01/09 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
layui表格数据重载
2019/07/27 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
介绍Python中的文档测试模块
2015/04/28 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
pip安装python库的方法总结
2019/08/02 Python
TensorFlow的reshape操作 tf.reshape的实现
2020/04/19 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
平面设计自荐信
2013/10/07 职场文书
求职自荐信格式
2013/12/04 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
寒假生活随笔
2015/08/15 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
详解Python中的进程和线程
2021/06/23 Python