QwizardPages сохранить свои собственные минимальные размеры

StackOverflow https://stackoverflow.com/questions/3497655

  •  29-09-2019
  •  | 
  •  

Вопрос

Я работаю с 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)));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top