【问题标题】:Removing cell from GridLayout从 GridLayout 中删除单元格
【发布时间】:2012-07-13 07:40:21
【问题描述】:

我在 GridLayout 中有两个 QSlider,如下所示:

layout = new GridLayout();

layout->addWidget(slider_horizontal, 0, 1, 1, 2);
layout->addWidget(slider_vertical, 1, 0, 2, 1);

这形成了一个 2x2 矩阵,因为它们都放置在不同的行和列中。 我想要的是删除右下角未使用的单元格(位置:1,1)。

问题是这个单元格发生在我的 QGraphicsView 中并且使该区域不可选择。

后来我做了这个:

sliderWidget = new QWidget(graphicsView);
sliderWidget = setLayout(layout); 

其中 graphicsView 是 QGraphicsView。

我的第一个想法是这是不可能的,我必须解决这个问题。 但我想检查一下你是否可以这样做。

我还想知道是否有其他方法可以使未使用的单元格不在我的图形视图中占据。

【问题讨论】:

  • 为什么不能把QGraphicsView 放到单元格(1,1) 中?

标签: c++ qt user-interface


【解决方案1】:

将整个图形视图放在右下角的单元格中怎么样?此滑块将位于图形视图之外,但通常这不成问题。

不确定您是否真的只希望滚动条用于显示较大场景的一小部分的视图,在这种情况下您可以使用这些:

QGraphicsView::setVerticalScrollBarPolicy(...)
QGraphicsView::setHorizontalScrollBarPolicy(...)

【讨论】:

  • 我现在实际上试图将整个视图放在 (1,1) 中。它运作良好,但看起来并不那么好。我在视图中有滚动条,这使它有点不整洁。但我可能会通过一些尺寸调整来解决这个问题。谢谢!