PyQt4 Docks 上的布局管理

Layout management on PyQt4 Docks

我完全是 GUI n00b,在 PyQt4 中开发应用程序。该应用程序是为实验室工作台设计的,它将首先在其中搜索设备,然后用停靠 windows 填充主 window,找到的每件设备一个。每件设备的界面看起来各不相同,带有用于控制和监视特定设备的各种小部件。

我的问题是,如何向停靠栏添加布局?一般来说,我的仪表板是 QtGui.QGridLayout() 以及构建它的各种小部件。但是,当我尝试设置新停靠栏的布局时,出现错误:

 oscilloscopeGrid = QtGui.QGridLayout()

 ...add widgets too grid build up interface for oscilloscope

 oscilloscopeDock = QtGui.QDockWidget("MSO-X-3034A", self)
 oscilloscopeDock.setLayout(oscilloscopeGrid)

代码运行,但我的仪器控制面板设计没有显示在扩展坞上,我在控制台上收到以下警告:

 QWidget::setLayout: Attempting to set QLayout "" on QDockWidget "", which
 already has a layout

QDockWidget 已经有一个布局(如错误所说)

你应该试试这样的东西(伪代码)

grid = QWidget()
layout = QGridLayout()
... add the widget to the layout
grid.setLayout(layout)
dock = QDockWidget()
dock.setWidget(grid)