子类化QMessageBox

时间:2012-09-14 09:32:25

标签: qt qmessagebox

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

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

2 个答案:

答案 0 :(得分:1)

This tutorial on custom windows might help you.它是法语的,但代码示例是英文的,它显示了如何编写自己的标题栏,创建一个窗口并在其上附加新的标题栏。我以前经历过它,一旦你完成它就非常简单。

答案 1 :(得分:0)

无需子类化QMessageBox或QDialog。您可以传递QMessageBox参数Qt::FramelessWindowHint以删除框架和按钮。您还可以使用Qt Style Sheets设置QMessageBox背景和按钮的样式。这样的事情应该有效:

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

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