4

我需要自定义 QMessageBox。我需要删除框架和标题栏并添加我自己的标题栏和关闭按钮。还需要更换标准按钮并可能重做框的背景颜色。

是否可以对其进行子类化并实现上述目标?这有什么例子吗?或者,我应该只继承 Dialog 并创建自己的消息框吗?

4

2 回答 2

1

本关于自定义窗口的教程可能会对您有所帮助。它是法语的,但代码示例是英语的,它展示了如何编写自己的标题栏、创建一个窗口并在其上附加新的标题栏。我以前也经历过,一旦你完成它就很简单了。

于 2012-09-14T15:12:18.873 回答
0

不需要继承 QMessageBox 或 QDialog。你可以传递一个 QMessageBox 的参数Qt::FramelessWindowHint来移除框架和按钮。您还可以使用Qt 样式表来设置 QMessageBox 的背景以及按钮的样式。像这样的东西应该工作:

msgBox->setStyleSheet("QDialog {background-color: red;}"
                      "QPushButton {background-color: blue;}")

我没有对此进行测试,但它应该可以工作或非常接近。

于 2012-09-14T09:49:21.313 回答