PyQt5每天必学之QSplitter实现窗口分隔

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控件中。

程序执行后

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • PyQt5主窗口动态加载Widget实例代码

    本文研究的主要是PyQt5主窗口动态加载Widget的代码示例,具体如下. 我们通过Qt Designer设计两个窗口,命名为主窗口(MainForm)和子窗口(ChildrenForm).我们在主窗口的空白中央添加一个栅格布局并命名为MaingridLayout,等会需要将ChildrenForm放进去. 编写代码 from PyQt5 import QtWidgets from MainForm import Ui_MainForm from Children import Ui_Form

  • python3+PyQt5实现自定义窗口部件Counters

    本文通过Python3+PyQt5实现自定义部件–Counters自定 窗口部件.这个窗口是3*3的网格.本文有两个例子如下: /home/yrd/eric_workspace/chap11/counters.py. /home/yrd/eric_workspace/chap11/counters_dnd.py 第二个例子在第一个例子的基础上实现能通过鼠标拖拽球到不同的网格中. /home/yrd/eric_workspace/chap11/counters.py #!/usr/bin/env

  • python3+PyQt5+Qt Designer实现堆叠窗口部件

    本文是对<Python Qt GUI快速编程>的第9章的堆叠窗口例子Vehicle Rental用Python3+PyQt5+Qt Designer进行改写. 第一部分无借用Qt Designer,完全用代码实现. 第二部分则借用Qt Designer,快速实现. 第一部分: import sys from PyQt5.QtCore import (Qt) from PyQt5.QtWidgets import (QApplication, QComboBox, QDialog, QDialo

  • PyQt5实现无边框窗口的标题拖动和窗口缩放

    网上找了半天都找不到好用的PyQt5无边框窗口的实现,借鉴部分前辈的窗口拖放代码,自己实现了一下无边框窗口,问题可能还有一点,慢慢改吧 先做个笔记 py文件 #!/usr/bin/env python #-*- coding:utf-8 -*- from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QVBoxLayout from PyQt5.QtCore import Qt, QPoint from PyQt5.QtGui impo

  • PyQt5每天必学之创建窗口居中效果

    本文实例为大家分享了PyQt5如何能够创建在桌面屏幕上居中窗口的具体代码,供大家参考,具体内容如下 下面的脚本说明我们如何能够创建在桌面屏幕上居中的窗口. #!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 这个程序是将一个窗口显示在屏幕的中心. 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年7月30日 """ i

  • PyQt5每天必学之关闭窗口

    最简单的关闭一个窗口的方法是点击标题栏上的 x 标志.但是,在下面的例子中,我们将展示如何通过编程来控制关闭窗口.我们将使用PyQt5的信号/槽. 以下是我们在例子中使用到的 QPushButton 控件的构造方法. QPushButton(string text, QWidget parent = None) text 参数是在按钮上显示的文本.parent 要将按钮控件放在哪里.在下面的例子中我们要将按钮控件放到 QWidget里.一个应用程序的窗口控件可以形成一个分层结构,在这个层次,大多

  • PyQt5每天必学之QSplitter实现窗口分隔

    QSplitter使用户可以通过拖动子面板的边界控制子面板的大小.在我们的例子中,我们使用了两个QSplitter 对三个QFrame 控件进行了分隔. #!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 这个例子说明如何使用QSplitter部件. 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月4日 """

  • PyQt5每天必学之进度条效果

    进度条是,当我们处理冗长的任务时使用的控件.它是以动画的形式让用户知道该任务正在取得进展.该QProgressBar控件提供一个水平或垂直进度条.程序员可以设置进度条的最小值和最大值.默认值是0到99. #!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 这个例子显示了一个进度条控件. 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月3日 &

  • PyQt5每天必学之弹出消息框

    默认情况下,如果我们点击标题栏上的 X 按钮,QWidget 关闭.有时候,我们需要改变这个默认行为.例如,如果我们有一个文件,要在编辑器中打开,我们可以先显示一个消息框,确认打开与否的操作. #!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 当我们点击应用程序窗口的关闭按钮,该程序显示一个确认信息框. 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2

  • PyQt5每天必学之带有标签的复选框

    QCheckBox 是具有两种状态的控件:开和关.它是一个带有标签的复选框.复选框通常用于表示应用程序可以启用或禁用的功能. #!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 在这个例子中,一个QCheckBox控件用于切换窗口的标题. 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月3日 """ import

  • PyQt5每天必学之像素图控件QPixmap

    QPixmap 像素图控件是用来处理图像的控件之一.它用于将优化后的图像显示在屏幕上.在我们的代码示例中,我们将使用QPixmap 控件在程序窗口上显示图像. #!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 在这个例子中,我们显示窗口上的图像. 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月4日 """ i

  • PyQt5每天必学之事件与信号

    这一部分我们将探索 PyQt5 的事件和信号是如何在应用程序中实现的. Events事件 所有的GUI应用程序都是事件驱动的.应用程序事件主要产生自用户,但它们也可通过其他方法来产生,例如一个互联网连接,一个窗口管理器,或计时器.当我们调用应用程序的exec_()方法,应用程序进入主循环.主循环检测各种事件,并把它们发送到事件对象. 在事件模型中,有三个参与者: event source(事件源) event object(事件对象) event target(事件目标) 事件源是对象的状态改变

  • PyQt5每天必学之拖放事件

    在PyQt5教程的这一部分,我们将讨论拖放操作. 在电脑图形用户界面,拖放事件就是点击一个虚拟对象,并将其拖动到其他位置或到另一个虚拟物体的动作.在一般情况下,它可以被用于调用多种动作,或创建两个抽象对象之间的关联的各种类型. 拖放事件是图形用户界面的一部分.拖放操作使用户能够直观地操作一些复杂的事情. 通常情况下,我们可以拖放两种类型:数据或某些图形对象.如果我们从一个应用程序拖动图像到另一个,我们拖放的是二进制数据.如果我们拖放Firefox标签并将其移动到另一个地方,我们拖放的是图形组件.

  • PyQt5每天必学之布局管理

    在GUI编程中有一个不容忽视的部分,那就是布局管理.布局管理掌控着我们的控件在应用程序窗口如何摆放.布局管理可以通过两种方式来完成.我们可以使用绝对定位或布局类两种方法控制程序窗口中的控件位置. 绝对定位 每个控件按程序员指定的位置放置.当您使用绝对定位,我们要了解以下限制: 如果我们调整窗口的大小控件的大小和位置保持不变 在不同平台上应用程序看起来可能会不同 更改字体可能会破坏应用程序的布局 如果决定改变布局,我们必须每个控件彻底的加以修改,这是繁琐和耗时的 下面的例子就是控件的绝对坐标定位方

随机推荐