PyQt5 QDockWidget – 在它里面设置多个widget

PyQt5 QDockWidget是一种可用于放置多个小部件(Widget)的窗口部件,它可以创建布局和作为应用程序的插件。在这里,我们将学习如何在QDockWidget中设置多个小部件,以下是完整使用攻略:

1. 引入模块

在使用QDockWidget之前,我们必须导入必要的模块。

from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QDockWidget, QListWidget, QVBoxLayout, QWidget
import sys

2. 创建主窗口

在使用QDockWidget之前,我们需要创建一个主窗口。

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('QDockWidget')
        self.setFixedSize(400, 400)

        central_widget = QTextEdit()
        self.setCentralWidget(central_widget)

3. 创建QDockWidget

在主窗口上创建QDockWidget,然后将其添加到主窗口中。

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('QDockWidget')
        self.setFixedSize(400, 400)

        self.dock = QDockWidget('Dockable', self)
        self.addDockWidget(self.dock)

        # 设置dock为可以停靠到左侧、右侧位置
        self.dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)

        central_widget = QTextEdit()
        self.setCentralWidget(central_widget)

4. 向QDockWidget添加小部件

使用QVBoxLayout创建一个QWidget,然后将其添加到QDockWidget中。我们创建一个QListWidget和QTextEdit,然后添加到QWidget上。

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('QDockWidget')
        self.setFixedSize(400, 400)

        self.dock = QDockWidget('Dockable', self)
        self.addDockWidget(Qt.RightDockWidgetArea, self.dock)

        # 设置dock为可以停靠到左侧、右侧位置
        self.dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)

        dock_widget = QWidget()

        layout = QVBoxLayout(dock_widget)

        list_widget = QListWidget()
        layout.addWidget(list_widget)

        text_edit = QTextEdit()
        layout.addWidget(text_edit)

        self.dock.setWidget(dock_widget)

        central_widget = QTextEdit()
        self.setCentralWidget(central_widget)

此时,QDockWidget就添加了两个小部件,一个QListWidget和一个QTextEdit。

示例一:在QDockWidget中添加一个PushButton

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('QDockWidget')
        self.setFixedSize(400, 400)

        self.dock = QDockWidget('Dockable', self)
        self.addDockWidget(Qt.RightDockWidgetArea, self.dock)

        # 设置dock为可以停靠到左侧、右侧位置
        self.dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)

        dock_widget = QWidget()

        layout = QVBoxLayout(dock_widget)

        list_widget = QListWidget()
        layout.addWidget(list_widget)

        text_edit = QTextEdit()
        layout.addWidget(text_edit)

        push_btn = QPushButton('Click Me')
        push_btn.clicked.connect(self.btn_clicked)  # 连接信号与槽函数
        layout.addWidget(push_btn)

        self.dock.setWidget(dock_widget)

        central_widget = QTextEdit()
        self.setCentralWidget(central_widget)

    def btn_clicked(self):
        print('Button Clicked')

在QDockWidget中添加一个QPushButton,当点击按钮时,在控制台中输出“Button Clicked”。

示例二:在QDockWidget中添加一个CheckBox

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('QDockWidget')
        self.setFixedSize(400, 400)

        self.dock = QDockWidget('Dockable', self)
        self.addDockWidget(Qt.RightDockWidgetArea, self.dock)

        # 设置dock为可以停靠到左侧、右侧位置
        self.dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)

        dock_widget = QWidget()

        layout = QVBoxLayout(dock_widget)

        list_widget = QListWidget()
        layout.addWidget(list_widget)

        text_edit = QTextEdit()
        layout.addWidget(text_edit)

        check_box = QCheckBox('Check Me')
        check_box.stateChanged.connect(self.check_box_changed)  # 连接信号与槽函数
        layout.addWidget(check_box)

        self.dock.setWidget(dock_widget)

        central_widget = QTextEdit()
        self.setCentralWidget(central_widget)

    def check_box_changed(self, state):
        print(f'Checkbox State: {state}')

在QDockWidget中添加一个QCheckBox,当改变复选框状态时,在控制台中输出状态。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 QDockWidget – 在它里面设置多个widget - Python技术站

(0)
上一篇 2023年5月12日
下一篇 2023年5月12日

相关文章

  • PyQt5 QCalendarWidget 访问字体指标

    下面我将为你详细讲解python的“PyQt5 QCalendarWidget访问字体指标”的使用攻略。 简介 QCalendarWidget 是 PyQt5 中的一个日历组件,能够方便地进行日期操作。如果想要在使用 QCalendarWidget 时访问其字体属性,可以通过 QCalendarWidget.font() 方法来实现。本文将为你详细讲解如何使…

    python 2023年5月12日
    00
  • PyQt5 – 给单选按钮的勾选指示灯添加背景色

    下面我详细讲解一下Python中PyQt5库如何为单选按钮的勾选指示灯添加背景色。 简介 PyQt5是Python中的一个流行的GUI(图形用户界面)库,它是Qt GUI应用程序框架的Python接口。PyQt5提供了丰富的图形界面组件,可以轻松制作漂亮且实用的GUI应用程序。 在PyQt5中,单选按钮(QRadioButton)组件是常用的控件之一。可以通…

    python 2023年5月10日
    00
  • PyQt5–创建绘画应用

    下面是关于“PyQt5–创建绘画应用”的完整使用攻略。 1. 准备工作 在开始创建绘画应用之前,需要进行一些准备工作,分别是安装PyQt5和导入相关模块。 1.1 安装PyQt5 可以使用pip命令来安装PyQt5,具体命令如下: pip install PyQt5 1.2 导入相关模块 在创建绘画应用时,需要使用到以下几个模块: import sys f…

    python 2023年5月10日
    00
  • PyQt5 QSpinBox – 屏蔽信号

    PyQt5是在Python语言下运行的GUI框架。在Qt中,QSpinBox是一个内置控件,它提供了一个在给定范围内的整数值选择器。在PyQt5中,我们可以使用QSpinBox来创建整数选择器工具,可以通过信号和槽机制来进行与其他控件的交互。 本次攻略将详细讲解如何使用PyQt5中的QSpinBox控件的信号屏蔽方法。 1. PyQt5 QSpinBox的基…

    python 2023年5月12日
    00
  • PyQt5 QDateEdit – 获取用户可以输入的最小日期

    当使用 PyQt5 的 QDateEdit 控件时,可以通过设置 minimumDate 来限制用户可以输入的最小日期。具体使用方法如下: 1.设置最小日期 首先需要 import PyQt5.QtCore 模块,然后使用 QDate 类创建一个 QDateEdit 控件对象,并设置最小日期: from PyQt5.QtCore import QDate f…

    python 2023年5月12日
    00
  • PyQt5 QSpinBox – 当对象名称改变时添加动作

    PyQt5是一个非常流行的Python GUI框架,提供了丰富的UI控件。其中QSpinBox是一个常用的控件,可以用来获取用户输入的整数值。本文将详细讲解如何在PyQt5中使用QSpinBox,以及如何在对象名称改变时添加动作。 1. 安装PyQt5 首先,需要确保已经安装了PyQt5。如果已安装,可以忽略这一步;否则,可以通过以下命令安装: pip in…

    python 2023年5月12日
    00
  • PyQt5 QCommandLinkButton – 获取自动独占属性

    下面我为你详细讲解Python中PyQt5库的QCommandLinkButton模块中的“获取自动独占属性”的使用攻略。 简介 在PyQt5的GUI编程中,QCommandLinkButton类是一个带有按钮和描述文字的组合控件,它常用于展示应用程序中的帮助内容或者指导用户进行特定操作的按钮。而“自动独占属性”指的是在点击该按钮时,如果设置为True,则按…

    python 2023年5月12日
    00
  • PyQt5 QDateEdit – 日期时间改变的信号

    PyQt5是一个使用Python语言开发的Qt库,它使Python开发者能够轻松使用C++的Qt库编写GUI程序。QDateEdit是PyQt5中提供的一个用于编辑时间日期的控件,本文将详细讲解如何使用它的日期时间改变信号。 PyQt5 QDateEdit的基本用法 在使用QDateEdit之前,需要先导入PyQt5库: from PyQt5.QtWidge…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部