qt 屏幕居中显示QMessageBox
时间: 2023-08-04 21:36:54 浏览: 319
要使Qt中的QMessageBox居中显示在屏幕上,可以使用以下代码:
```python
msgBox = QMessageBox()
msgBox.setText("Your message here")
msgBox.setWindowTitle("Title here")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.buttonClicked.connect(msgButtonClick)
# 居中显示
msgBox.setGeometry(QStyle.alignedRect(Qt.LeftToRight, Qt.AlignCenter, msgBox.size(), qApp.desktop().availableGeometry()))
msgBox.exec_()
```
其中,`QStyle.alignedRect()`函数可以将消息框的大小和位置设置为屏幕的中心。`Qt.LeftToRight`指定从左到右的文本方向,`Qt.AlignCenter`指定居中对齐。
注意,`msgButtonClick`是一个自定义的函数,用于处理用户点击消息框按钮的事件。如果不需要处理按钮的事件,可以省略`msgBox.buttonClicked.connect(msgButtonClick)`这一行。
相关问题
qt 居中显示QMessageBox
要将 QMessageBox 居中显示在屏幕上,可以使用如下代码:
```python
msgBox = QMessageBox()
msgBox.setText("Hello World!")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.setWindowTitle("Title")
msgBox.setGeometry(0, 0, 300, 200)
msgBox.move(int((QApplication.desktop().width() - msgBox.width()) / 2),
int((QApplication.desktop().height() - msgBox.height()) / 2))
msgBox.exec_()
```
其中,`setGeometry()` 方法可以设置 QMessageBox 的大小,`move()` 方法可以将 QMessageBox 移动到屏幕中央。
QT QMessageBox 按钮居中?
在Qt中,`QMessageBox`是一个用于显示信息、警告或错误消息的标准对话框。如果你想让其按钮在显示时居中对齐,你可以通过设置默认的布局样式或者在创建对话框时指定特定的样式。以下是两种常见的方法:
1. **使用默认样式**:
如果你使用的是Qt5或更新版本,QMessageBox默认会将按钮水平居中。只需创建对话框并添加消息文本即可:
```cpp
QMessageBox msg;
msg.setText("这是一个信息");
msg.exec();
```
2. **自定义样式**:
如果你想进一步定制,可以创建一个自定义的`QDialogButtonBox`并在`QMessageBox`中使用它,然后使用`setGeometry`方法来调整按钮的位置使其居中。例如:
```cpp
QMessageBox::StandardButtons buttons = QMessageBox::Yes | QMessageBox::No;
QDialogButtonBox* buttonBox = new QDialogButtonBox(buttons);
buttonBox->exec();
// 确保窗口大小合适并且按钮居中
int buttonWidth = buttonBox->width();
int buttonHeight = buttonBox->height();
int x = (parentWidget()->width() - buttonWidth) / 2;
int y = (parentWidget()->height() - buttonHeight) / 2;
buttonBox->move(x, y);
```
在这里,`parentWidget()`通常是你希望对话框放置在其上的窗口。
阅读全文