2017-08-18 11 views
0

複数のタブ付きQDockWidgetsを追加しようとしていますが、どういうわけか私は同時にドッキングする必要があります。 docsによればドッキングされた複数のウィジェットを追加する

from PyQt5.QtWidgets import * 
from PyQt5.QtCore import * 

class DockWindow(QDockWidget): 
    def __init__(self, parent, name): 
     super().__init__(parent) 

     parent.addDockWidget(Qt.TopDockWidgetArea, self) 
     self.setWindowTitle(name) 
     child = parent.findChildren(DockWindow) 

     if len(child) > 1: 
      parent.tabifyDockWidget(self, child[0]) 
      self.raise_() 


app = QApplication(sys.argv) 
main = QMainWindow() 

for i in range(10): 
    DockWindow(main, str(i)) 


main.show() 
sys.exit(qApp.exec_()) 

enter image description here

答えて

1

MWEコード

空隙QMainWindow :: tabifyDockWidget(QDockWidget *まず、QDockWidget * 秒)

第2ドックウィジェットを最初のドックウィジェットの上に移動し、メインウィンドウにタブ付きドッキング領域 を作成します。任意のchild[0]場合、最初のパラメータに締結されているものから、

は、あなたのケースselfには、2番目の新しいQDockWidget、初期QDockWidgetでなければなりません。

parent.tabifyDockWidget(self, child[0]) 

に:

parent.tabifyDockWidget(child[0], self) 

スクリーンショット:問題は、変更することで解決された私の部分に

enter image description here

+0

愚かな間違い。その明確化のおかげで –

関連する問題