DYa*_*ngu 13 c++ qt 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;}
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法来增加大小:
msg.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
msg.setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);
msg.setFixedHeight(600);
msg.setFixedWidth(600);
Run Code Online (Sandbox Code Playgroud)
我甚至清理并重建,它编译了一切,但没有任何生效...
您对如何"手动"设置QMessageBox大小有任何想法吗?谢谢.
coy*_*508 25
您可以编辑标签的CSS:
msg.setStyleSheet("QLabel{min-width: 700px;}");
Run Code Online (Sandbox Code Playgroud)
您可以类似地编辑按钮的CSS以添加边距或使其更大.
例如:
msg.setStyleSheet("QLabel{min-width:500 px; font-size: 24px;} QPushButton{ width:250px; font-size: 18px; }");
Run Code Online (Sandbox Code Playgroud)
QSpacerItem* horizontalSpacer = new QSpacerItem(800, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
QGridLayout* layout = (QGridLayout*)msg.layout();
layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount());
Run Code Online (Sandbox Code Playgroud)
但这似乎并不适用于所有人.
Spe*_*cer 10
coyotte508 的答案导致我的布局严重偏离中心,并且在不同的宽度下它被切断。在进一步搜索中,我发现这个线程解释了更好的解决方案。
本质上,消息框的布局是一个网格,因此您可以向其添加 SpacerItem 来控制宽度。以下是该链接中的 C++ 代码示例:
QMessageBox msgBox;
QSpacerItem* horizontalSpacer = new QSpacerItem(500, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
msgBox.setText( "SomText" );
QGridLayout* layout = (QGridLayout*)msgBox.layout();
layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount());
msgBox.exec();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10043 次 |
| 最近记录: |