pyqt中QMessageBox弹出界面大小为啥无法设置?
时间: 2023-10-10 15:13:21 浏览: 162
一个简单的qt程序设置QWidget大小
QMessageBox弹出界面大小无法设置是因为它的大小是由内容自适应的,所以无法手动设置其大小。
如果想要自定义弹出界面的大小,可以使用QDialog来代替QMessageBox,然后在QDialog中添加需要的控件,并手动设置大小。同时,可以使用QMessageBox的信息提示、问题、警告等功能,只需要在QDialog中手动添加相应的控件即可。
以下是一个使用QDialog代替QMessageBox来实现信息提示框的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QDialog, QMessageBox, QVBoxLayout, QLabel, QPushButton
class MyDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle('提示')
self.setFixedSize(300, 150) # 设置固定大小
layout = QVBoxLayout()
label = QLabel('这是一条提示信息!')
layout.addWidget(label)
button = QPushButton('确定')
button.clicked.connect(self.accept)
layout.addWidget(button)
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication([])
dialog = MyDialog()
if dialog.exec() == QDialog.Accepted:
QMessageBox.information(None, '提示', '你点击了确定按钮!')
app.exec_()
```
在这个示例中,我们创建了一个MyDialog类,继承自QDialog,然后在其中添加了一个标签和一个按钮,并设置了固定大小。最后,我们在主程序中创建了一个MyDialog对象,当用户点击按钮时,我们可以使用QMessageBox来实现信息提示。
阅读全文