使用 QT-=gui 时替代 QImage

Posted

技术标签:

【中文标题】使用 QT-=gui 时替代 QImage【英文标题】:Alternative to QImage when using QT-=gui 【发布时间】:2017-06-05 20:52:37 【问题描述】:

QImage 有很多不错的图像文件 I/O 功能

但是,如果你需要编译一个命令行应用程序在linux服务器上运行(特别是没有X),你需要用QT-=gui编译,这意味着没有QImage,(也没有QVector3d,也没有QMatrix4x4)其他的,我真的不明白为什么这些基本数据类型具有 GUI 依赖性)。我真的必须在 GUI 和非 GUI 应用程序中使用单独的库来处理图像文件,还是我缺少什么?

这是 Qt 5.4.2。可执行文件无法以以下方式开始:

QXcbConnection: Could not connect to display

【问题讨论】:

你用的是qt4还是qt5? 你为什么放 QT - = gui ?,这并不意味着你要创建一个 GUI。 @eyllanesc 感谢您的提示。我的误解是 QtGUI dll 依赖项在启动时导致 QXcbConnection 错误。事实上,这只是部分正确 【参考方案1】:

我在这里遇到了一个解决方案:

Qt 5.1 QApplication Without Display - QXcbConnection: Could not connect to display

TL;DR,只要在运行时将-platform offscreen 添加到程序参数中,您就可以在无头实例上运行 Qt 应用程序(无需运行 X)

即使您为基本数据类型链接到 QtGUI 和 QtOpenGL 也可以这样做

【讨论】:

您也可以使用-platform minimal 或将QImage 和相关文件(包括painter)复制到您的项目中并直接使用它们。只有几十个文件。

以上是关于使用 QT-=gui 时替代 QImage的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Qt 应用程序在执行时不显示 GUI?

关闭 QT GUI 后如何停止线程

Qt 4.8 杀死并重新启动 GUI

用于多平台 Python 应用程序的 Qt 或 EFL

使用 cmake 和提升的小部件编译 qt gui 时出错

在 Windows (Vista) 上使用 C++、Qt 的 GUI 设计问题