我建立使用Qt一个桌面应用程序,我开发的机器是赢得7 64位系统具有日语语言环境,标准的系统字体是明了体 。 大多数Win 7的用户界面是在这种字体,但经典的/旧的程序,例如UI字体自定义窗口本身使用不同的字体是MS UI哥特式。 这不打扰我,直到我发现QtCreator建立我的MS UI哥特式在同一个地方,且明了体中的其他应用程序。 例如,qlabels,qlineedits,qcombobox都采用MS UI哥特式,但有一个QTableView中的自定义完成者我添加之后的版本中明了体。
我做了最QtCreator的设计的UI,并完成者我在代码中添加。 如果我更改所有部件字型明了体中的设计,那当然应用程序将使用因此明了体看起来正确,但在这种情况下,我宁愿Qt的选择任何系统的默认自动字体适合我,因为赢得7将不会是唯一平台,我会使用该程序。
什么提出了我的关注更是QApplication的字体::()返回MS UI哥特式,这是在我的情况虚假。 当然,我可以使用的QApplication :: setfont程序(设置应用范围的字体),但违背了具有本机的外观正感觉没有微观字体的全部目的。
所以我的问题是,
- 如何确定的Qt系统默认字体和,
- 如果这是一个Qt的Bug我怎么去围绕它的故事吗?
- 我应该如何使用的.ui文件,并仍然在运行时我的UI使用默认的系统字体?
一些澄清和事实,我发现
我想我的应用程序使用系统默认字体为每个文本。
这个讨论说,设计师将增加你不管愿意不愿意字体信息。 因此,Qt的将履行这一信息,而不是系统默认字体。 至少有人提到手动删除这些信息应该让Qt的选秀系统默认字体在运行。
在我的开发机器的QApplication ::字体()返回错误的默认字体。 但如何来一个QTableView中我在后面的代码添加使用正确的字体? 它是从哪里得到这个消息?
所以,如果我找到在哪里QTableView中发现这个信息,我可以得到它的主,并与QApplication的设置应用广泛:: setfont程序()。 那么剩下的就是手动删除所有字体信息,然后希望它会工作。 但是,这就像为什么我们首先使用Qt是不是?