3

我正在使用 Qt( Windows XP 32 位版本 4.6并在 Qt Creator 2.0.0 中编译)并试图让 QWizard 工作。

第一个问题

到目前为止,我的QWizard中有三个QWizardPages。每个页面都有一个 QVBoxLayout 作为它的布局应用。我的第一页内容非常少(只有三行 QLabel),但由于某种原因,QLabel 与“< Back”、“Next >”和“Cancel”按钮窗格之间有相当多的空白。我希望每个页面根据其中的内容具有最少的空白。过去,当我将 QVBoxLayout 放在无父 QWidget(它自己的窗口)中时,窗口总是小到足以修复 QVBoxLayout。现在有额外的空白。是否有一些我必须关闭或打开的选项,以使 QWizardPages 尽可能小?

第二个(并且很可能与第一个有关)问题

另外,我的第二页比我的第一页大得多,所以当我到达第二页并返回第一页时,第一页保持与第二页相同的大小,但只有在我访问了第二页之后。这是一个错误吗?

我正在做的唯一几何设置是当我做

move(50, 50);

在 QWizard 构造函数中。没有调整大小......没有明确的。我试图让布局发挥他们的魔力。

感谢您在高级方面的帮助。

4

1 回答 1

1

为了解决这个问题,我创建了一个 QWizard 的子类并创建了一个私有插槽,如下所示:

void ChildClass::fitContents(int id)
{
    adjustSize(); // this automagically resizes the window to fit the contents
}

并让它在每次页面更改时调用它,如下所示:

connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(fitContents(int)));
于 2010-08-17T17:51:41.910 回答