2
ドッキングされたウィジェットをすべてPySideで収集する方法はありますか?メインウィンドウの左または右にドッキングされていますか?すべてのドッキングされたウィジェットとそれらの場所を収集する
私の最初の質問に答えがない場合、ウィジェットが左か右にドッキングされているかどうかを少なくともどのように調べることができますか?
from PySide import QtCore, QtGui
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.textEdit = QtGui.QTextEdit()
self.setCentralWidget(self.textEdit)
self.createActions()
self.createMenus()
self.createToolBars()
self.createStatusBar()
self.createDockWindows()
self.setWindowTitle("Dock Widgets")
def createActions(self):
self.toggleLeftAct = QtGui.QAction(
"&Toggle Left", self, shortcut=QtGui.QKeySequence("Ctrl+L"),
statusTip="Toggle Left Sidebar",
triggered=self.toggleLeft)
self.toggleRightAct = QtGui.QAction(
"&Toggle Right", self, shortcut=QtGui.QKeySequence("Ctrl+R"),
statusTip="Toggle Right Sidebar",
triggered=self.toggleRight)
def createMenus(self):
self.fileMenu = self.menuBar().addMenu("&File")
self.fileMenu.addAction(self.toggleLeftAct)
self.fileMenu.addAction(self.toggleRightAct)
self.viewMenu = self.menuBar().addMenu("&View")
def createToolBars(self):
self.fileToolBar = self.addToolBar("File")
self.fileToolBar.addAction(self.toggleLeftAct)
self.fileToolBar.addAction(self.toggleRightAct)
def createStatusBar(self):
self.statusBar().showMessage("Ready")
def createDockWindows(self):
self.dockCustomers = QtGui.QDockWidget("Customers", self)
self.dockCustomers.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
self.customerList = QtGui.QListWidget(self.dockCustomers)
self.dockCustomers.setWidget(self.customerList)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.dockCustomers)
self.viewMenu.addAction(self.dockCustomers.toggleViewAction())
self.dockParagraphs = QtGui.QDockWidget("Paragraphs", self)
self.paragraphsList = QtGui.QListWidget(self.dockParagraphs)
self.dockParagraphs.setWidget(self.paragraphsList)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.dockParagraphs)
self.viewMenu.addAction(self.dockParagraphs.toggleViewAction())
def toggleLeft(self):
print self.dockCustomers
print self.dockParagraphs
def toggleRight(self):
print 'toggle Right'
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())