QwizardPages сохранить свои собственные минимальные размеры
Вопрос
Я работаю с Qt (Версия 4.6 В Windows XP 32-бит и компиляция в Qt Creator 2.0.0) и пытаясь получить QWizard для работы.
Первая проблема:
у меня есть три QwizardPages. в моем Qwizard уже. Каждая страница имеет qvboxlayout, применяемый в качестве макета. Моя первая страница имеет очень маленький контент (всего лишь три линии QLABEL), но по какой-то причине между QLabel и «Back», «Next>» и «Отменить», Я хочу, чтобы каждая страница имела минимальное количество белого пространства на основе содержания внутри него. В прошлом, когда я положил QVBoxLayout в безродный qwidget (это собственное окно), окно всегда было достаточно маленьким, чтобы исправить QVBoxLayout. Теперь есть дополнительный пробел. Есть ли какой-то вариант, который мне нужно выключить или включить, чтобы QWizardPages настолько мал?
Второй (и в основном, вероятно, связан с первым) Проблема:
Кроме того, моя вторая страница намного больше моей первой страницы, поэтому, когда я добираюсь до второй страницы и вернусь на первую страницу, первая страница поддерживает тот же размер, что и вторая страница, но только после того, как я посетил вторую страницу. Это ошибка?
Единственная установка геометрии, которую я делаю, это когда я делаю
move(50, 50);
в Qwizard Constructor. Нет изменения изменений ... ничего явного. Я пытаюсь позволить макетам сделать их магию.
Спасибо за вашу помощь в Advanced.
Решение
Чтобы исправить эту проблему, я создал детский класс 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)));