如何横向布局controlArea和mainArea
How to layout controlArea and mainArea horizontally
我正在尝试为 Orange 3 创建一个新的小部件。我看到它提供了一些默认区域(controlArea 和 mainArea),我可以在其中添加我的组件。据我所知,widget.py 将这两个都放在 'self.leftWidgetPart' 中,它的布局使用垂直方向。来自 widget.py:
self.leftWidgetPart = gui.widgetBox(self.topWidgetPart,
orientation="vertical", margin=0)
if self.want_main_area:
...
self.mainArea = gui.widgetBox(self.topWidgetPart,
orientation="vertical",
sizePolicy=QSizePolicy(QSizePolicy.Expanding,
QSizePolicy.Expanding),
margin=0)
我想改为水平布局 controlArea 和 mainArea。我相信这是可能的,因为 OWBoxPlot 小部件似乎可以做到这一点,但我无法计算出 what/where 相关代码片段是(我猜我的 Python 很弱)。
感谢任何帮助,
大卫
通常在 PyQt 中,您可以通过删除现有布局并将其替换为另一个布局(希望在填充它之前)来更改方向。
对于橙色的self.controlArea
,你可以这样做。
from PyQt4.QtGui import QHBoxLayout
import sip
sip.delete(self.controlArea.layout())
self.controlArea.setLayout(QHBoxLayout())
我正在尝试为 Orange 3 创建一个新的小部件。我看到它提供了一些默认区域(controlArea 和 mainArea),我可以在其中添加我的组件。据我所知,widget.py 将这两个都放在 'self.leftWidgetPart' 中,它的布局使用垂直方向。来自 widget.py:
self.leftWidgetPart = gui.widgetBox(self.topWidgetPart,
orientation="vertical", margin=0)
if self.want_main_area:
...
self.mainArea = gui.widgetBox(self.topWidgetPart,
orientation="vertical",
sizePolicy=QSizePolicy(QSizePolicy.Expanding,
QSizePolicy.Expanding),
margin=0)
我想改为水平布局 controlArea 和 mainArea。我相信这是可能的,因为 OWBoxPlot 小部件似乎可以做到这一点,但我无法计算出 what/where 相关代码片段是(我猜我的 Python 很弱)。
感谢任何帮助,
大卫
通常在 PyQt 中,您可以通过删除现有布局并将其替换为另一个布局(希望在填充它之前)来更改方向。
对于橙色的self.controlArea
,你可以这样做。
from PyQt4.QtGui import QHBoxLayout
import sip
sip.delete(self.controlArea.layout())
self.controlArea.setLayout(QHBoxLayout())