Pyqt-qdockwidget

提供:Dev Guides
移動先:案内検索

PyQt-QDockウィジェット

ドッキング可能ウィンドウは、フローティング状態のままにしたり、指定した位置でメインウィンドウに接続したりできるサブウィンドウです。 QMainWindowクラスのメインウィンドウオブジェクトには、ドッキング可能なウィンドウ用に予約された領域があります。 このエリアは中央のウィジェットの周りです。

ドックウィンドウは、メインウィンドウ内で移動することも、ユーザーがドッキング解除して新しい領域に移動することもできます。 これらのプロパティは、次の QDockWidget クラスメソッドによって制御されます-

Sr.No. Methods & Description
1

setWidget()

ドックウィンドウの領域にQWidgetを設定します

2

setFloating()

trueに設定すると、ドックウィンドウはフロートすることができます

3

setAllowedAreas()

ウィンドウをドッキングできる領域を設定します

|LeftDockWidgetArea |RightDockWidgetArea |TopDockWidgetArea |BottomDockWidgetArea |NoDockWidgetArea

4

setFeatures()

ドックウィンドウの機能を設定します

|DockWidgetClosable |DockWidgetMovable |DockWidgetFloatable |DockWidgetVerticalTitleBar |NoDockWidgetFeatures

次の例では、最上位ウィンドウは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 PyQt4.QtCore import *
from PyQt4.QtGui 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()

上記のコードは、次の出力を生成します-

QDockWidget出力