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 相关文章推荐
利用Tkinter和matplotlib两种方式画饼状图的实例
Nov 06 Python
Python3多线程操作简单示例
May 22 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
在python里从协程返回一个值的示例
Feb 19 Python
pytorch 预训练层的使用方法
Aug 20 Python
Python基础之字符串常见操作经典实例详解
Feb 26 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
Python 面向对象部分知识点小结
Mar 09 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
Python下划线5种含义代码实例解析
Jul 10 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 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
js获取视频时长代码
2014/04/10 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
JSONP跨域请求
2017/03/02 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
extern是什么意思
2016/03/10 面试题
人力资源专业推荐信
2013/11/29 职场文书
工会主席事迹材料
2014/06/03 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
快速学习Oracle触发器和游标
2021/06/30 Oracle
使用 Apache 反向代理的设置技巧
2022/01/18 Servers
MySQL数据管理操作示例讲解
2022/12/24 MySQL