- PyQt5 教程
- PyQt5 - 首頁
- PyQt5 - 簡介
- PyQt5 - 新特性
- PyQt5 - Hello World
- PyQt5 - 主要類
- PyQt5 - 使用Qt Designer
- PyQt5 - 訊號與槽
- PyQt5 - 佈局管理
- PyQt5 - 基本部件
- PyQt5 - QDialog 類
- PyQt5 - QMessageBox
- PyQt5 - 多文件介面
- PyQt5 - 拖放
- PyQt5 - 資料庫處理
- PyQt5 - 繪圖API
- PyQt5 - BrushStyle 常量
- PyQt5 - QClipboard
- PyQt5 - QPixmap 類
- PyQt5 有用資源
- PyQt5 - 快速指南
- PyQt5 - 有用資源
- PyQt5 - 討論
PyQt5 - QDock部件
可停靠視窗是一個子視窗,它可以保持浮動狀態,也可以附加到主視窗的指定位置。QMainWindow 類的主視窗物件保留了一個用於可停靠視窗的區域。此區域位於中心部件周圍。
可停靠視窗可以在主視窗內移動,也可以取消停靠以由使用者移動到新區域。這些屬性由以下**QDockWidget**類方法控制:
| 序號 | 方法及描述 | |||||
|---|---|---|---|---|---|---|
| 1 |
setWidget() 在停靠視窗區域設定任何QWidget |
|||||
| 2 |
setFloating() 如果設定為true,則停靠視窗可以浮動 |
|||||
| 3 |
setAllowedAreas() 設定視窗可以停靠到的區域
|
|||||
| 4 |
setFeatures() 設定停靠視窗的特性
|
示例
在下面的示例中,頂級視窗是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.items.setWidget(self.listWidget)
可停靠物件放置在中心部件的右側。
self.addDockWidget(Qt.RightDockWidgetArea, self.items)
完整的程式碼如下:
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.items.setWidget(self.listWidget)
self.items.setFloating(False)
self.setCentralWidget(QTextEdit())
self.addDockWidget(Qt.RightDockWidgetArea, self.items)
self.setLayout(layout)
self.setWindowTitle("Dock demo")
def main():
app = QApplication(sys.argv)
ex = dockdemo()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
上面的程式碼產生以下輸出。單擊停靠圖示可取消停靠 ListWidget 視窗。雙擊可再次停靠:
pyqt_basic_widgets.htm
廣告