QWizard: Изменить высоту / размеры поля заголовка - PullRequest
1 голос
/ 28 августа 2011

В настоящее время я пытаюсь реализовать простой мастер «Первые шаги» для приложения Python / Qt, над которым я работаю. Это действительно легко сделать с помощью Designer, но, как обычно, дьявол кроется в деталях. Моя проблема в том, что поле «Название» слишком велико для меня (~ 50% от доступного экрана). Вот скриншот , а там * .ui-файл.

Я уже просмотрел все свойства QWizard / QWizardPage и не смог найти ничего, что указывало бы на размер / стиль поля 'Title'. Есть ли способ сделать это (возможно, с помощью пользовательской таблицы стилей?) Или мне не повезло?

Ответы [ 2 ]

2 голосов
/ 28 августа 2011

Метка заголовка находится во внутреннем QGridLayout, и если вы не добавите макет на страницу (или явно не установите политику вертикального размера страницы на MinimumExpanding или Expanding), чтобы заставить ячейку сетки, содержащую При увеличении страницы заголовок всегда будет занимать 50% от общей высоты.

0 голосов
/ 20 июля 2017

Если изображение установлено, как с QWizard::WatermarkPixmap на QWizard::ModernStyle, высота будет заблокирована, несмотря ни на что.

Чтобы обойти это, используйте setSideWidget().

В конструкторе для вашего подкласса QWizard

this->setWizardStyle(QWizard::ModernStyle);

//    setPixmap(QWizard::WatermarkPixmap, QPixmap(":/watermark.gif"));
QWidget * sideWidget = new QWidget();
QGridLayout * gridLayout = new QGridLayout();
QLabel * label = new QLabel();
label->setPixmap(QPixmap(":/watermark.gif"));
sideWidget->setLayout(gridLayout);
gridLayout->addWidget(label);
this->setSideWidget(sideWidget);


//this->setSizePolicy(QSizePolicy::MinimumExpanding ,QSizePolicy::MinimumExpanding );

И, наконец, чтобы настроить поле заголовка при изменении размера шрифта, проще всего взломать высоту растрового изображения и установить его вQWizard :: LogoPixmap.

int numOfLinesInTitleBox = 2;
QPixmap p(1,this->fontMetrics().height()*numOfLinesInTitleBox);
p.fill(Qt::transparent);
setPixmap(QWizard::LogoPixmap, p);
this->adjustSize();

Надеюсь, это поможет.

...