Open In App

PyQt5 – QDockWidget

Last Updated : 11 Aug, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

QDockWidget provides the concept of dock widgets, also know as tool palettes or utility windows. Dock windows are secondary windows placed in the dock widget area around the central widget in a QMainWindow(original window). Dock windows can be moved inside their current area, moved into new areas and floated (e.g., undocked) by the end-user. The QDockWidget API allows the programmer to restrict the dock widgets ability to move, float and close, as well as the areas in which they can be placed.
Below is how the dock widget looks like 
 

When we open this widget it looks like this 
 

Example : 
We will create a dock widget and add push button to it and when push button will get pressed a message will get printed on the label
Below is the implementation 
 

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("GeeksforGeeks", self)
 
        # push button
        push = QPushButton("Press", self)
 
        # setting widget to the dock
        dock.setWidget(push)
 
        # setting geometry tot he dock widget
        dock.setGeometry(100, 0, 200, 30)
 
 
        # creating a label
        label = QLabel("GeeksforGeeks", self)
 
        # setting geometry to the label
        label.setGeometry(100, 200, 300, 80)
 
        # making label multi line
        label.setWordWrap(True)
 
        # adding action to the push button
        push.clicked.connect(lambda: label.setText("Dock Widget's Push button pressed"))
 
 
 
 
 
 
 
# create pyqt5 app
App = QApplication(sys.argv)
 
# create the instance of our Window
window = Window()
 
# start the app
sys.exit(App.exec())


Output : 
 

 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads