我正在嘗試爲我正在開發的Python/Qt應用程序實現一個簡單的「第一步」嚮導。這對設計師來說很容易,但像往常一樣,魔鬼在於細節。 我的問題是'標題'字段對我來說太大了(約50%的可用屏幕屬性)。這是一個screenshot和there * .ui文件。QWizard:更改標題字段的高度/尺寸
我已經看過所有的QWizard/QWizardPage屬性,並且找不到任何涉及「標題」字段大小/樣式的內容。有沒有辦法做到這一點(也許使用自定義樣式表?)還是我運氣不好?
我正在嘗試爲我正在開發的Python/Qt應用程序實現一個簡單的「第一步」嚮導。這對設計師來說很容易,但像往常一樣,魔鬼在於細節。 我的問題是'標題'字段對我來說太大了(約50%的可用屏幕屬性)。這是一個screenshot和there * .ui文件。QWizard:更改標題字段的高度/尺寸
我已經看過所有的QWizard/QWizardPage屬性,並且找不到任何涉及「標題」字段大小/樣式的內容。有沒有辦法做到這一點(也許使用自定義樣式表?)還是我運氣不好?
標題標籤是在內部QGridLayout
,除非你要麼佈局添加到頁面(或頁面的垂直尺寸政策明確設置爲MinimumExpanding
或Expanding
)強制包含頁面擴大網格單元,標題總是佔總高度的50%。
如果設置了像素圖,就像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();
希望有幫助。
謝謝,設置'QWizardPage's的垂直尺寸策略的確有訣竅!然而,添加布局並沒有,但只要第一種方法有效...... :-) – jbaiter