1

私は現在、作業中のPython/Qtアプリケーションに簡単な「最初のステップ」ウィザードを実装しようとしています。これはDesignerで行うのは本当に簡単ですが、いつものように悪魔は細部に宿っています。私の問題は、「タイトル」フィールドが私には大きすぎることです(利用可能な画面領域の約50%)。これがスクリーンショットで、そこに*.uiファイルがあります。

QWizard / QWizardPageのすべてのプロパティを確認しましたが、[タイトル]フィールドのサイズ/スタイルを参照するものは見つかりませんでした。これを行う方法はありますか(おそらくカスタムスタイルシートを使用していますか?)、または私は運が悪いですか?

4

2 に答える 2

2

タイトルラベルは内部QGridLayoutにあり、ページにレイアウトを追加する(またはページの垂直サイズポリシーをまたはに明示的に設定する)場合を除いて、ページをMinimumExpanding含むExpandingグリッドセルを強制的に展開しない限り、タイトルは常に50%かかります全高の。

于 2011-08-28T18:25:46.580 に答える
0

のようにピックスマップが設定さ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();

お役に立てば幸いです。

于 2017-07-20T14:49:13.117 に答える