如何在控制台应用程序中使用QGraphicsScene?

7
根据Qt规范,QGraphicsScene是一个无视图的QGraphicsItems数据模型。我有一个工具可在窗口化和非窗口化模式下使用(通过提供命令行参数)。在非窗口化模式下,它应该作为控制台应用程序运行(例如不连接到X或其他)。但是,无论是将应用程序用作QCoreApplication(qt5)还是在QApplication中将guienabled标志(qt4)设置为false,当尝试实例化QGraphicsScene对象时,我的应用程序(显然?)都会崩溃。
有没有办法在控制台应用程序中使用QGraphicsScene(除了“不行”)?
谢谢,

我给你点赞,起初我认为这是一个愚蠢的问题,因为QGraphicsScene在小部件库中,所以我认为它必须需要QPainter - 但是API或文档中没有说明它必须能够渲染任何内容。当调试器崩溃时,你的调试器显示了什么? - cmannett85
这个问题已经被报告为一个 bug 并关闭了:https://bugreports.qt.io/browse/QTBUG-22610 - Nejat
这篇帖子也很相似:https://dev59.com/RlzUa4cB1Zd3GeqP5a72 - Nejat
@cmannett85 我同意这一点,但是在命令行应用程序中你会如何处理一个“场景”? - user4516901
我并不是在说“不行,你做不了”。也许你能,我不知道。但问题是什么呢?这是一个_图形场景_。如果没有任何图形,它就毫无用处了。 - user4516901
显示剩余2条评论
1个回答

1
如果有人对此感兴趣,Qt5 中有一个解决方案。在实例化 QApplication 之前,只需添加以下内容:
qputenv("QT_QPA_PLATFORM", QByteArrayLiteral("minimal"));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接