PyQt4 Docks的布局管理

时间:2015-05-05 15:17:12

标签: api pyqt pyqt4 docking

我是一个完整的GUI n00b在PyQt4中开发应用程序。该应用程序是为实验室工作台设计的,它首先会搜索设备,然后使用对接的窗口填充主窗口,每个设备找到一个。每件设备的接口都会有所不同,各种小部件用于控制和监控特定设备。

我的问题是,如何在停靠栏中添加布局?一般来说,我的仪表板是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

1 个答案:

答案 0 :(得分:1)

QDockWidget已有布局(如错误所示)

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

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