我正在使用 Qt5.1,我正在尝试创建一个没有显示的 QApplication。我需要用 QPainter 绘制文本,所以我需要使用 QApplication(或 QGuiApplication),否则会出现段错误。
该应用程序在 Qt4.8 中运行良好,但在 Qt5.1 中在 Ubuntu 的 headless 版本上失败并出现错误:
"QXcbConnection: Could not connect to display".
在 Qt 4.8 中,我能够使用以下带有 GUIenabled = false 的构造函数来创建不需要显示的 QApplication:
QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled )
在 Qt5.1 中,QApplication 的构造函数不再具有 GUIenabled 标志。
我简要地浏览了源代码,在 QApplication 构造函数中似乎确实有一个标志,但没有记录可以在该标志中使用哪些选项。使用“false”不起作用。
如何创建没有显示的 QApplication?是否有另一种方法可以告诉 QApplication GUIenabled = false?或者,我可以创建一个在 QImage 上使用 QPainter 绘制文本时不会出现段错误的 QCoreApplication 吗?
最佳答案
是的,这是 Qt 3(?)在 Qt 5 中消失的东西。尝试使用 -platform offscreen
运行您的应用程序改为命令行选项。
请注意,您不需要 QApplication
或链接到 QtWidgets
只是利用 QImage
, 使用 QGuiApplication
(并链接到 QtGui
)就足够了。
关于c++ - 没有显示的 Qt 5.1 QApplication - QXcbConnection : Could not connect to display,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58546800/