QMessageBoxes在OSX中有非常奇怪的行为

时间:2014-11-20 22:39:03

标签: css macos qt fonts messagebox

我的Qt应用程序,在OSX上,有非常奇怪的QMessageBoxes。

与Windows中的外观相比,OSX上的所有消息框都有非常小的字体。此外,标题不显示。也没有图标(在Windows中,显示应用程序图标)。按钮的顺序和默认按钮也是不同的,即使它们在代码中的放置顺序与在Windows中相同...

QMessageBox::critical(this, tr("Some Error"), tr("Cannot do what you want."));

if (QMessageBox::warning(this, tr("Some warning"),
    tr("I can't do what you ask, do %1 instead?").arg(alternative),
    QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes)
{}

有很多这样的消息框......

example

奇怪的是,第二张图片中的字体非常小......但是我点击了程序外部,然后又回来了,字体刷新到了很好的尺寸......

example

是否可以添加样式表......以及放入什么? (因为我认为他们应该能够调整大小,所以我不能放置固定大小)

同样重写每个标准类型的消息框,创建一个对象,设置文本,图标,字体,大小,将是一个非常大规模的程序中的大量工作......标题怎么样......

我有什么选择?是否有可能在osx中​​以某种方式继承消息框,以便我可以定义所需的行为? (我将如何处理非常小的字体?)

在Windows和Linux下,我没有看到这种奇怪的行为。使用Qt 4.8,OSX 10.6-10.9

1 个答案:

答案 0 :(得分:0)

提出问题很好,发布后提出的类似问题是丰富的信息。

我发现了如何修复此answer中的字体。奇怪的是......我使用的字体大小是应用程序之一:(我对相关问题的回答here

我仍然在尝试修复丢失的标题,尽管这个answer帮助我理解OS X中的正常行为不是显示标题......这answer帮我弄清楚什么如果我想重写几百个消息框来显示他们的标题。

至于默认按钮......我会用{/ 1>替换QMessageBox::Yes

QMessageBox::Yes | QMessageBox::Default