QWizardPages保持自己的最小尺寸

时间:2010-08-16 21:46:36

标签: c++ qt qtgui

我正在使用Qt(版本4.6 在Windows XP 32位上并在Qt Creator 2.0.0中编译)并尝试让QWizard运行。

第一个问题

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

第二次(并且很可能与第一次相关)问题

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

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

move(50, 50);
在QWizard构造函数中

。没有调整大小...没有明确的。我试图让布局发挥他们的魔力。

感谢您提前帮助。

1 个答案:

答案 0 :(得分: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)));