QWizard:修改标题字段的高度/尺寸
2 个回答
0
如果设置了图像,比如在 QWizard::ModernStyle
中使用的 QWizard::WatermarkPixmap
,那么高度就会被锁定,不管你怎么调整都没用。
要解决这个问题,可以使用 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();
希望这些能帮到你。
2
标题标签放在一个内部的 QGridLayout
里,除非你给页面添加一个布局(或者明确把页面的垂直大小策略设置为 MinimumExpanding
或 Expanding
),否则包含页面的网格单元格不会扩展,标题总是会占据总高度的50%。