如何调整 QMessageBox 的大小?

新手上路,请多包涵

我有一个 QMessageBox 我希望它更大一些。这是一个简单的 QMessageBox 带有两个标准按钮,确定和取消。问题是它对于我的应用程序来说非常小。代码显示如下:

 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 大小有任何想法吗?谢谢。

原文由 DYangu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
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());

但这似乎并不适合所有人。

原文由 coyotte508 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题