QMessageBox のサイズを変更するにはどうすればよいですか? 質問する

QMessageBox のサイズを変更するにはどうすればよいですか? 質問する

QMessageBoxもっと大きくしたい があります。これはQMessageBox、2 つの標準ボタン ([OK] と [キャンセル]) があるシンプルなものです。問題は、このアプリケーションで使用するには小さすぎることです。コードは次のようになります。

QMessageBox msg;
msg.setText("Whatever");
msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
msg.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);

int ret = msg.exec();
switch (ret) {
  case QMessageBox::Ok:
      ui->textEdit->clear();
      break;
  case QMessageBox::Cancel:
      break;}

サイズを大きくするためにいくつかの方法を試しました:

msg.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);

msg.setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);

msg.setFixedHeight(600);
msg.setFixedWidth(600);

クリアして再構築しましたが、すべてがコンパイルされましたが、何も効果がありません...

QMessageBox のサイズを「手動で」設定する方法をご存知ですか? ありがとうございます。

ベストアンサー1

ラベルの CSS を編集できます:

msg.setStyleSheet("QLabel{min-width: 700px;}");

同様に、ボタンの CSS を編集して、余白を追加したり、ボタンを大きくしたりすることもできます。

例えば:

msg.setStyleSheet("QLabel{min-width:500 px; font-size: 24px;} QPushButton{ width:250px; font-size: 18px; }");

また、言及されたトリック:

QSpacerItem* horizontalSpacer = new QSpacerItem(800, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
QGridLayout* layout = (QGridLayout*)msg.layout();
layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount());

しかし、これはすべての人に効果があるわけではないようです。

おすすめ記事