我实现了一个自定义 QMessageBox,继承自 QDialog。(使用 qt 4.8.6)
现在的问题是所有自定义消息框看起来与 QMessageBox 静态函数完全不同:
- QMessageBox::信息(...)
- QMessageBox::critical(...)
- QMessageBox::问题(...)
- QMessageBox::警告(...)
它们在大小、字体、字体大小、图标、背景(静态 qmessagebox 有两种背景颜色)等方面有所不同...。
我发现的唯一一件事是如何访问操作系统特定的消息框图标。
QStyle *style = QApplication::style();
QIcon tmpIcon = style->standardIcon(QStyle::SP_MessageBoxInformation, 0, this);//for QMessageBox::Information
字体或整个样式是否有类似的东西。
我知道 QMessagebox 使用操作系统特定的样式指南。但我找不到他们。您可以在此处查看源代码。
所以我的问题是如何使从 QDialog 继承的自定义 QMessageBox 看起来像静态 QMessageBox::... 函数?
(如果我可以访问在此静态函数调用中创建的 QMessageBox 对象,我可以读出所有样式和字体参数。但这是不可能的。)