【发布时间】:2015-07-30 19:44:05
【问题描述】:
假设某些图像必须由 Qt 控制台程序生成,并且内部算法需要 字体度量(它们使用 文本宽度/高度作为输入计算应该出现的位置)。该程序必须能够在没有任何 GUI 的 Linux 上运行(运行级别 3,基本上是一个没有任何显示服务器的集群)。
问题: QFontMetrics 仅在以 GUI 模式运行 Qt 应用程序时可用。
在没有任何显示服务器的情况下获取字符串指标的任何解决方法?
【问题讨论】:
-
确实,当尝试使用没有附加应用程序的 QFont 时,它会抛出“QGuiApplication::font() 中的 ASSERT 失败:“没有 QGuiApplication 实例”。我知道这不是一个理想的解决方案,但您可以创建一个虚拟应用程序并将其用作字体的“容器”。只是不要执行应用程序(app.exec()),而是在使用后将其删除。
-
您需要
gui模块,但您不需要实际的UI。可能您还需要QApplication对象(不是QCoreApplication),但您不必创建任何小部件。 -
是的,但是当没有显示服务器时 QApplication 会调用 exit(1)...
-
@MarekR 这就是我的意思,创建 QApplication 但根本不执行它。您应该可以正常访问它的成员。
标签: qt qt4 console-application fontmetrics