PyQt提供了方便的停靠窗口控件,我们可以很方便的编写一个停靠窗口,代码和效果如下:
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.createDockWindows()
def createDockWindows(self):
dock1 = QtGui.QDockWidget('Tab1', self)
dock1.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea|QtCore.Qt.RightDockWidgetArea)
widget1 = QtGui.QWidget(parent=dock1)
dock1.setWidget(widget1)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock1)
dock2 = QtGui.QDockWidget('Tab2', self)
dock2.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea|QtCore.Qt.RightDockWidgetArea)
widget2 = QtGui.QWidget(parent=dock1)
dock2.setWidget(widget2)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock2)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
这时如果想把这两个停靠窗口叠加到一起,怎么办?那就要用到QMainWindow.tabifyDockWidget (self, QDockWidget, QDockWidget)方法,我们加一行代码看看:
self.tabifyDockWidget(dock1, dock2)
这时的问题是Tab2是当前的标签页,一般按习惯来讲,默认第一个是当前标签页,这时候就需要用到QWidget.raise_(self)方法,该方法可以把自己提升到其父控件顶层。
再加一行代码:
dock1.raise_()
- 大小: 10.6 KB
- 大小: 11.8 KB
- 大小: 11.9 KB
分享到:
相关推荐
本教程主要聚焦于使用PyQt5的QMainWindow类构建主窗体,并结合QSplitter来动态加载子窗体(QWidget类),同时实现一种导航栏抽屉效果。下面我们将详细探讨这些知识点。 1. **QMainWindow类**: QMainWindow是PyQt5...
4. 如何在`QWidget`子类中初始化用户界面,包括添加控件和设置窗口属性。 5. `QApplication`的`exec_`方法启动事件循环,使得用户界面可以响应事件。 掌握这些知识后,你就能在PyQt5中自如地创建并管理窗口,实现更...
用pyqt5设计了一个主窗体,在窗体运行时需要把一个无限循环放在一个线程去工作。运行后,发现通过鼠标按主窗体的关闭按键关闭主创体后,线程不会自动终止,依然在运行。尽管对我的使用场景来说,这不是问题,因为...
本项目“python+pyqt4实现的圆角窗体(不规则窗体)”旨在利用PyQt4库创建一个具有独特视觉效果的圆角或不规则形状的窗口。 要实现这样的效果,首先需要理解PyQt4中的QPainter和QRegion类。QPainter是Qt中的绘图引擎...
本主题聚焦于如何在Python3.x版本中利用PyQt5实现动态加载子窗口到主窗口,特别是通过QTreeWidget作为导航栏,并利用QSplitter进行窗口分割。此外,还会涉及如何使用右键菜单以及实现界面与业务逻辑的分离。 首先,...
Python3.x+Pyqt5实现主窗体与子窗体相互传数据、传字符、传值;主要使用了信号与槽的方法。
网上找了半天都找不到好用的PyQt5无边框窗口的实现,借鉴部分前辈的窗口拖放代码,自己实现了一下无边框窗口,问题可能还有一点,慢慢改吧 先做个笔记 py文件 #!/usr/bin/env python #-*- coding:utf-8 -*- from ...
Python 如何让PyQt5窗体代码与逻辑代码分离 Python源码Python 如何让PyQt5窗体代码与逻辑代码分离 Python源码Python 如何让PyQt5窗体代码与逻辑代码分离 Python源码Python 如何让PyQt5窗体代码与逻辑代码分离 Python...
# PyQt5点击按钮弹出自定义窗口 创建新窗口 1. 创建 QPushButton 按钮并绑定点击事件函数; 2. 点击按钮时创建自己定义的窗口类对象并显示; 3. 包含两个例程,分别为只能弹出一个窗口和可以反复点击按钮创建无限个...
在PyQt5中,`QDockWidget`是一个非常重要的控件,它允许用户将窗口部件(如`QWidget`)停靠在`QMainWindow`的四周,也可以使它们浮动并独立于主窗口。这种功能在设计复杂且需要多个可自定义布局的用户界面时特别有用...
首先,我们需要了解PyQt5中的`QMainWindow`类,它是PyQt5中用于创建主窗口的标准类,通常包含了标题栏、菜单栏、工具栏等元素。但在某些场景下,我们希望去除这些标准元素,这就需要用到无边框窗口。要实现无边框...
Python3.x+Pyqt5实现主窗体里QToolBox导航栏抽屉效果和树形导航,以及主窗体里的分割器QSplitter用QToolBox导航栏抽屉效果动态载入子窗体。
续)Python3.x+Pyqt5实现主窗体里的工具栏,且工具栏里可以同时显示图标和文字。
在本教程中,我们将深入探讨如何使用Python 3.x和PyQt5库来构建一个具有QMainWindow类的主窗体,并在其中集成QSplitter组件,动态加载子窗体(QWidget类实例)。此外,我们还将了解如何实现一个具有导航栏抽屉效果的...
在默认情况下,我们使用PyQt5创建出来的窗口和部件都是默认的样式,虽然谈不上很丑,但是也毫无美感可言。其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式,以达到美化...
# PyQt5无边框窗口边缘可拖动调节窗口大小 双击最大化还原 1. 去除窗口边框,自绘标题栏; 2. 通过鼠标事件定义了窗口边缘的拖动事件,使无边框窗口也能调节大小; 3. 增加了自绘标题栏双击时窗口最大化和还原的事件...
这个“pyqt5对用qt designer设计的窗体实现弹出子窗口test.zip”示例就演示了如何在主窗口中触发一个子窗口的弹出。下面我们将详细探讨这一过程中的关键知识点。 首先,`mainWindow.py`文件通常包含了主窗口...
您可能感兴趣的文章:PyQt5笔记之弹出窗口大全PyQt5创建一个新窗口的实例pyqt5 实现多窗口跳转的方法对PyQt5基本窗口控件 QMainWindow的使用详解PyQt5 多窗口连接实例pyqt5对用qt designer设计的窗体
在PyQt框架中,开发GUI应用时,我们经常需要在不同的窗口之间传递数据,比如从父窗口向子窗口传递信息,或者从子窗口回传到父窗口。这通常通过信号和槽机制来实现,它是PyQt的核心特性之一,用于对象间通信。下面将...