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_()