PyQt5 QDockWidget – 在其中设置多个小部件
在本文中,我们将看到如何向 QDockWidget 添加/设置多个小部件。 QDockWidget 提供了停靠小部件的概念,也称为工具面板或实用程序窗口。停靠窗口是放置在 QMainWindow(原始窗口)中中央小部件周围的停靠小部件区域中的辅助窗口。我们使用 setWidget 方法将小部件添加/设置到停靠小部件。但这仅用于设置单个小部件。
In order to set multiple widgets inside it we have to do the following
1. Create a Main Window Class
2. Inside the class create a QDockWidget object and set its properties
3. Create a QWidget object
4. Create a QLayout object
5. Create various widget object which we want to add in the QDockWidget
6. Add these widgets to the layout created earlier with the help of addWidget method
7. Set this laypout to the QWidget object with the help of setLayout method
8. Set this QWidget object to the QDockWidget object with the help of setWidget method
下面是实现
Python3
# importing libraries
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class Window(QMainWindow):
def __init__(self):
super().__init__()
# setting title
self.setWindowTitle("Python ")
# setting geometry
self.setGeometry(100, 100, 500, 400)
# calling method
self.UiComponents()
# showing all the widgets
self.show()
# method for components
def UiComponents(self):
# creating dock widget
dock = QDockWidget(self)
# setting title to the dock widget
dock.setWindowTitle("GfG ")
# creating a QWidget object
widget = QWidget(self)
# creating a vertical box layout
layout = QVBoxLayout(self)
# push button 1
push1 = QPushButton("A", self)
# push button 2
push2 = QPushButton("B", self)
# push button 3
push3 = QPushButton("C", self)
# adding these buttons to the layout
layout.addWidget(push1)
layout.addWidget(push2)
layout.addWidget(push3)
# setting the layout to the widget
widget.setLayout(layout)
# adding widget to the layout
dock.setWidget(widget)
# creating a label
label = QLabel("GeesforGeeks", self)
# setting geometry to the label
label.setGeometry(100, 200, 300, 80)
# making label multi line
label.setWordWrap(True)
# setting geometry tot he dock widget
dock.setGeometry(100, 0, 200, 30)
# create pyqt5 app
App = QApplication(sys.argv)
# create the instance of our Window
window = Window()
# start the app
sys.exit(App.exec())
输出 :