Python 添加多个停靠小部件
我尝试添加多个选项卡化QdockWidget,但不知何故,我只能同时停靠 mwe代码:Python 添加多个停靠小部件,python,python-3.x,pyqt,qt5,pyqt5,Python,Python 3.x,Pyqt,Qt5,Pyqt5,我尝试添加多个选项卡化QdockWidget,但不知何故,我只能同时停靠 mwe代码: from PyQt5.QtWidgets import * from PyQt5.QtCore import * class DockWindow(QDockWidget): def __init__(self, parent, name): super().__init__(parent) parent.addDockWidget(Qt.TopDockWidget
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_())
根据:
void QMainWindow::tabifyDockWidget(QDockWidget*首先,QDockWidget*
第二)
将第二个dock小部件移动到第一个dock小部件的顶部,创建一个
主窗口中的选项卡式停靠区域
根据第一个参数得出的结论,必须是初始的QDockWidget
,如果有child[0]
,则第二个是新的QDockWidget
,在您的情况下是self
。通过改变以下方式解决问题:
parent.tabifyDockWidget(self, child[0])
致:
截图:
我犯了愚蠢的错误。谢谢你的澄清
parent.tabifyDockWidget(child[0], self)