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三元运算符实现方法
Dec 17 Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
Python实现建立SSH连接的方法
Jun 03 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
Python学习小技巧之列表项的排序
May 20 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
python批量替换多文件字符串问题详解
Apr 22 Python
Python爬虫抓取代理IP并检验可用性的实例
May 07 Python
python协程gevent案例 爬取斗鱼图片过程解析
Aug 27 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
python 用struct模块解决黏包问题
Nov 07 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 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
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
python pycharm的安装及其使用
2019/10/11 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Python pip使用超时问题解决方案
2020/08/03 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
大学生标准推荐信范文
2013/11/25 职场文书
新驾驶员个人自我评价
2014/01/03 职场文书
绿化先进工作者事迹材料
2014/01/30 职场文书
事假请假条范文
2014/04/11 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
费城故事观后感
2015/06/10 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android