快捷搜索:  汽车  科技

PyQt5堆栈窗口及停靠区控件(PyQt5堆栈窗口及停靠区控件)

PyQt5堆栈窗口及停靠区控件(PyQt5堆栈窗口及停靠区控件)方法QDockWidget类常用方法是一个堆栈窗口控件,同一时间只能显示一个小控件。QStackedWidget使用QStackedLayout布局。import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *class StackedExample(QWidget): def __init__(self): super(StackedExample self).__init__ self.setGeometry(300 50 10 10) self.setWindowTitle('StackedWidget 例子') self.leftlist = QListWidget self.leftlist.insertItem(0 '联系方式') self.left

文章:Python数据分析实例

作者:Brook

本次主要介绍PyQt5中堆栈窗口及停靠区控件。

01 StackedWidget堆栈控件

是一个堆栈窗口控件,同一时间只能显示一个小控件。QStackedWidget使用QStackedLayout布局。

StackedWidget堆栈窗口使用示例

import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *
class StackedExample(QWidget): def __init__(self): super(StackedExample self).__init__ self.setGeometry(300 50 10 10) self.setWindowTitle('StackedWidget 例子')
self.leftlist = QListWidget self.leftlist.insertItem(0 '联系方式') self.leftlist.insertItem(1 '个人信息') self.leftlist.insertItem(2 '教育程度')
self.stack1 = QWidget self.stack2 = QWidget self.stack3 = QWidget
self.stack1UI self.stack2UI self.stack3UI
#QStackedWidget对象中填充3个子控件 self.Stack = QStackedWidget(self) self.Stack.addWidget(self.stack1) self.Stack.addWidget(self.stack2) self.Stack.addWidget(self.stack3) hbox = QHBoxLayout(self) hbox.addWidget(self.leftlist) hbox.addWidget(self.Stack) self.setLayout(hbox) self.leftlist.currentRowChanged.connect(self.display)
def stack1UI(self): layout = QFormLayout layout.addRow("姓名" QLineEdit) layout.addRow("电话" QLineEdit) self.stack1.setLayout(layout)
def stack2UI(self): layout = QFormLayout sex = QHBoxLayout sex.addWidget(QRadioButton("男")) sex.addWidget(QRadioButton("女")) layout.addRow(QLabel("性别") sex) layout.addRow("生日" QLineEdit) self.stack2.setLayout(layout)
def stack3UI(self): layout = QHBoxLayout layout.addWidget(QLabel("学历")) layout.addWidget(QCheckBox("本科")) layout.addWidget(QCheckBox("硕士")) self.stack3.setLayout(layout)
#将QListWidget的currentRowChanged信号与display槽函数关联 def display(self i): self.Stack.setCurrentIndex(i)

if __name__ == '__main__': app = QApplication(sys.argv) demo = StackedExample demo.show sys.exit(app.exec_)

PyQt5堆栈窗口及停靠区控件(PyQt5堆栈窗口及停靠区控件)(1)

02 QDockWidget停靠区组件

是一个可以在QMainWindow窗口停留,或在桌面最上层浮动的界面组件。QDockWidget控件在主窗口内可以移动到新的区域。

QDockWidget类常用方法

方法

说明

setWidget

在Dock窗口区域设置QWidget

setFloating

设置Dock窗口是否可以移动,如果设置为True,则表示可以浮动

setAllowedAreas

设置窗口可以停靠的区域

1、LeftDockWidgetArea,左边停靠区域

2、RightDockWidgetArea,右边停靠区域

3、TopDockWidgetArea,顶部停靠区域

4、BottomDockWidgetArea,底部停靠区域

5、NoDockWidgetArea,不显示Widget

setFeatures

设置停靠窗口功能属性

1、DockWidgetClosable,可关闭

2、DockWidgetMovable,可移动

3、DockWidgetFloatable,可漂移

4、DockWidgetVerticalTitleBar,在左边显示垂直的标签栏

5、AllDockWidgetFeatures,具有前三种属性所有功能

6、NoDockWidgetFeatures,无法关闭,不能移动,不能漂移

DockWidget堆栈窗口使用示例

import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *

class DockDemo(QMainWindow): def __init__(self parent=None): super(DockDemo self).__init__(parent) self.setWindowTitle("DockWidget 例子")
layout = QHBoxLayout bar = self.menuBar #QMenu类表示菜单栏中的菜单,可以显示文本和图标,并不负责执行操作 File = bar.addMenu("File") file.addAction("New") file.addAction("save") file.addAction("quit") #创建可停靠窗口items, self.items = QDockWidget("Dockable" self) #items内添加QListWidget对象 self.listWidget = QListWidget self.listWidget.addItem("item1") self.listWidget.addItem("item2") self.listWidget.addItem("item3") self.items.setWidget(self.listWidget) self.items.setFloating(False) #添加QTextEdit对象控件 self.setCentralWidget(QTextEdit)
self.addDockWidget(Qt.RightDockWidgetArea self.items) self.setLayout(layout)
if __name__ == '__main__': app = QApplication(sys.argv) demo = DockDemo demo.show sys.exit(app.exec_)

PyQt5堆栈窗口及停靠区控件(PyQt5堆栈窗口及停靠区控件)(2)

以上为StackedWidget堆栈窗口和DockWidget停靠组件基础部分介绍,

后续介绍其综合示例。

- 合作、交流、转载请添加微信 moonhmily1 -

猜您喜欢: