PyQt QDockWidget

QDockWidget是一个可以停靠在QMainWindow中的窗口控件。

它可以保持浮动状态,也可以作为子窗口在指定位置附加到主窗口。

 

QDockable示例

下面的程序创建一个QDockable并在其中包含一个列表

您可以将其拖动并放在左侧,右侧等位置。

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class DockDemo(QMainWindow):
    def __init__(self,parent=None):
        super(DockDemo, self).__init__(parent)
        layout=QHBoxLayout()
        bar=self.menuBar()
        file=bar.addMenu('File')
        file.addAction('New')
        file.addAction('Save')
        file.addAction('quit')

        self.items=QDockWidget('Dockable',self)

        self.listWidget=QListWidget()
        self.listWidget.addItem('Item1')
        self.listWidget.addItem('Item2')
        self.listWidget.addItem('Item3')
        self.listWidget.addItem('Item4')

        self.items.setWidget(self.listWidget)
        self.items.setFloating(False)
        self.setCentralWidget(QTextEdit())
        self.addDockWidget(Qt.RightDockWidgetArea,self.items)

        self.setLayout(layout)
        self.setWindowTitle('Dock')

if __name__ == '__main__':
    app=QApplication(sys.argv)
    demo=DockDemo()
    demo.show()
    sys.exit(app.exec_())

qdockable

代码分析

在此示例中,顶部窗口是QMainWindow对象,而QTextEdit对象是其中央窗口小部件。

self.setCentralWidget(QTextEdit())

首先创建一个可停靠窗口

self.items=QDockWidget('Dockable',self)

然后,在停靠的窗口中添加QListWidget对象

self.listWidget=QListWidget()
self.listWidget.addItem('Item1')
self.listWidget.addItem('Item2')
self.listWidget.addItem('Item3')
self.listWidget.addItem('Item4')

#Set up QWidget in window area, add list control
self.items.setWidget(self.listWidget)

标签

发表评论