Qt应用程序以root身份运行时更改字体

Posted

技术标签:

【中文标题】Qt应用程序以root身份运行时更改字体【英文标题】:Qt application changes font when run as root 【发布时间】:2015-06-22 13:39:29 【问题描述】:

我有一个简单的 Qt 应用程序(Qt 版本是 4.8.2)在 Debian Linux 上运行。当它以普通用户身份运行时,一切正常。当它以 root 身份运行时,应用字体不同,因此 UI 看起来很丑。我想它找不到一些样式表。我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

这是一个众所周知的问题,它会影响 debian 下的多个应用程序。不要尝试在您的 Qt 应用程序中解决此问题。

您有两个选择。我更喜欢第一个:

    Set a specific theme for the root application 在应用程序中设置特定样式。我记得这种方法有很多问题。当时,根据样式,应用程序会崩溃。谨慎使用。

【讨论】:

【参考方案2】:

我认为您需要在 root 模式下运行 qtconfig 应用程序,以便选择在 qt 应用程序在管理模式下运行时使用哪种样式。

【讨论】:

或者你可以设置qApp->setStyle()。或者使用-style=<style> 命令行参数运行您的应用程序。 @Amartel 如果有人实际正确设置了 qtconfig,则会中断(不一致)。 @rubenvb 第一个 - 是的(可能这正是需要的),第二个始终是可选的。

以上是关于Qt应用程序以root身份运行时更改字体的主要内容,如果未能解决你的问题,请参考以下文章

在Windows 10上更改Qt应用程序中的字体

更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小变得更大

在 Ubuntu 中以 root 用户身份启动 Qt 应用程序

在 Docker 中以非 root 用户身份运行应用程序

通过 XPC 与应用程序通信并启动以 root 身份运行的守护程序

如何用root的身份以普通用户权限运行程序