QMainWindow主窗體中放置停靠組件QDockWidget的實現流程:
第一步:創建QMainWindow窗體,這是承載QDockWidget的主體
第二步:創建QDockWidget組件實例,設置停靠位置和顯示特征,如是否允許浮動和自由移動位置
第三步:因為QDockWidget創建時是空的一個組件,必須在上面放置其他的GUI控件,因此必須將需要的控件組合放置在一個QWidget中,再將GWidget捆綁到QDockWidget中
第四步:利用QMainWindow的addDockWidget方法,將創建的QDockWidget捆綁至主窗體中
完整代碼實現如:
1 class MainWindows(QtWidgets.QMainWindow): # 創立主窗口,繼承QMainWindow類 2 3 def __init__(self): 4 super(MainWindows, self).__init__() # 顯性調用父類構造函數 5 self.setWindowTitle("QtDockWidgets demo") 6 aw = CreateWidget() # 創建一個准備放入dockwidget的窗體控件 7 self.CreateDockWidget(aw) # 創建dock,並將上一步創建的QWidget放入dock中 8 9 10 def CreateDockWidget(self, widget): # 定義一個createDock方法創建一個dockwidget 11 dock = QtWidgets.QDockWidget("selectQuote") # 實例化dockwidget類 12 dock.setWidget(widget) # 帶入的參數為一個QWidget窗體實例,將該窗體放入dock中 13 dock.setObjectName("selectQuote") 14 dock.setFeatures(dock.DockWidgetFloatable|dock.DockWidgetMovable) # 設置dockwidget的各類屬性 15 self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, dock) # 設置dockwidget放置在QMainWindow中的位置,並且將dockwidget添加至QMainWindow中
運行代碼,調用主窗口:
1 app = QtWidgets.QApplication(sys.argv) 2 3 aw = MainWindows() 4 aw.showMaximized() 5 6 app.exec_()