【问题标题】:QMessageBox: Failing to display text within the box (using c++)QMessageBox:无法在框中显示文本(使用c ++)
【发布时间】:2017-02-01 08:57:12
【问题描述】:

使用简单(?)任务来创建消息框已经被卡住了很久。实际功能效果很好,按钮触发了我想要的操作,但不知何故,框中的信息文本是不可见的。代码如下:

QMessageBox* msgBox;
    msgBox = new QMessageBox();
    msgBox->setWindowTitle("Open settings from file");
    msgBox->setText("Do you want to save your current settings to file first?");
    msgBox->setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
    msgBox->setDefaultButton(QMessageBox::No);      
    msgBox->exec();

结果如下:

MsgBox with invisible text

如您所见,显示的是标题而不是文本。我应该补充一点,我已经尝试了各种解决方案,例如调整框的大小、更改字体颜色(没有任何反应)、背景颜色(背景颜色仍然存在)以及使用其他文本参数,如 setInformativeText、setDetailedText 具有相同的结果。

有人知道如何解开这个谜吗?

【问题讨论】:

  • 既然您用消息框提出问题,为什么不简单地使用static member function question 来显示消息框呢?无需创建您自己的实例。
  • 我也试过那个。结果相同 - 文本不显示...

标签: c++ qmessagebox


【解决方案1】:

我最近遇到了类似的问题,原来我的 setText 文本与我的背景颜色相同。我更改了样式表中背景的颜色,然后我的 setText 出现了! 在我的父小部件样式表中:

QDialogBox{
background-color: darkgray;
}

这不是一个确定的解决方案,但我希望它最终可以帮助某人。

【讨论】:

  • 这不是一个合格的答案,应该在cmets中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多