Установите верхний QDockWidget для кучи табулированных QDockWidgets

H там.

Может кто-нибудь, пожалуйста, скажите мне, как установить Tabbified QDockWidget, чтобы выскочить на фронт (быть активной док-станцией)?

На приведенном ниже рисунке выбрана вкладка «Полный» и ее содержимое видно, но я хочу установить вкладку «рот» на выбранную вкладку и увидеть ее содержимое.

вкладки

Код:

self.dockList = [] approvedAdded = False # add new dock widgets for dockName in previewDict.keys(): previewList = previewDict[ dockName ] # setup dock dock = QDockWidget( dockName ) dock.setWidget( PreviewWidget( previewList ) ) dock.setAllowedAreas( Qt.TopDockWidgetArea ) dock.setFeatures( QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable ) # add to ui self.addDockWidget( Qt.TopDockWidgetArea , dock ) # add to list insertIndex = len( self.dockList ) - 1 if dockName == "approved": insertIndex = 0 approvedAdded = True elif dockName == tfPaths.user(): if not approvedAdded: insertIndex = 0 else: insertIndex = 1 self.dockList.insert( insertIndex , dock ) # tabify dock widgets if len( self.dockList ) > 1: for index in range( 0 , len(self.dockList) - 1 ): self.tabifyDockWidget( self.dockList[index] , self.dockList[index + 1] ) # set tab at pos [0] in list to active if self.dockList: print self.dockList[0].windowTitle() self.dockList[0].raise_() 

Табулированный dockwidget можно установить как выбранную вкладку следующим образом:

 dockwidget.raise_() 

РЕДАКТИРОВАТЬ

Вот пример запуска, основанный на коде в вопросе:

 from PyQt4 import QtCore, QtGui class Window(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.setWindowTitle('Dock Widgets') self.button = QtGui.QPushButton('Raise Next Tab', self) self.button.clicked.connect(self.handleButton) self.setCentralWidget(self.button) self.dockList = [] approvedAdded = False for dockName in 'Red Green Yellow Blue'.split(): dock = QtGui.QDockWidget(dockName) dock.setWidget(QtGui.QListWidget()) dock.setAllowedAreas(QtCore.Qt.TopDockWidgetArea) dock.setFeatures(QtGui.QDockWidget.DockWidgetMovable | QtGui.QDockWidget.DockWidgetFloatable) self.addDockWidget(QtCore.Qt.TopDockWidgetArea, dock) insertIndex = len(self.dockList) - 1 if dockName == 'Green': insertIndex = 0 approvedAdded = True elif dockName == 'Yellow': if not approvedAdded: insertIndex = 0 else: insertIndex = 1 self.dockList.insert(insertIndex, dock) if len(self.dockList) > 1: for index in range(0, len(self.dockList) - 1): self.tabifyDockWidget(self.dockList[index], self.dockList[index + 1]) self.dockList[0].raise_() self.nextindex = 1 def handleButton(self): self.dockList[self.nextindex].raise_() self.nextindex += 1 if self.nextindex > len(self.dockList) - 1: self.nextindex = 0 if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())