Qt 5.1 没有显示的 QApplication - QXcbConnection:无法连接到显示

新手上路,请多包涵

我正在使用 Qt5.1,我正在尝试创建一个没有显示的 QApplication。我需要用 QPainter 绘制文本,所以我需要使用 QApplication(或 QGuiApplication),否则会出现段错误。

该应用程序在 Qt4.8 中运行良好,但在无头版本的 Ubuntu 上的 Qt5.1 中失败,并出现以下错误:

“QXcbConnection:无法连接到显示器”。

在 Qt 4.8 中,我能够使用 GUIenabled = false 的以下构造函数来创建一个不需要显示的 QApplication:

QApplication::QApplication (int & argc, char ** argv, bool GUIenabled )

在 Qt5.1 中,QApplication 的构造函数不再具有 GUIenabled 标志。

我简要地扫描了源代码,并且在 QApplication 构造函数中似乎确实有一个标志,但没有记录关于可以在该标志中使用哪些选项。使用“假”不起作用。

如何创建没有显示的 QApplication?是否有其他方法可以告诉 QApplication GUIenabled = false?或者,我可以创建一个在 QImage 上使用 QPainter 绘制文本时不会出现段错误的 QCoreApplication 吗?

原文由 Vincent 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 564
1 个回答

是的,这是 Qt 5 中没有的 Qt 3(?)。尝试使用 -platform offscreen 命令行选项来运行您的应用程序。

Note that you don’t need QApplication or linking to QtWidgets to just draw upon a QImage , using QGuiApplication (and linking to QtGui ) 就足够了。

原文由 peppe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题