qt - 使用 Qt EGLFS 时使用 QLabel 取消引用空指针
问题描述
我已经将 Qt 设置为使用 EGLFS,它在大多数情况下都可以正常工作,直到我添加了一个 QLabel(对于 QTextEdit 和其他一些控件也是如此)。这是我的测试应用程序:
int main(int argc, char *argv[]) {
QApplication app {argc, argv};
QWidget widget {};
QLabel label {"test", &widget};
widget.show();
return QApplication::exec();
}
当我运行它时,它会出现故障,这是回溯:
OpenGLContext::handle() const () from /usr/lib/libQt5Gui.so.5
QEglFSIntegration::createPlatformOpenGLContext(QOpenGLContext*) const () from /usr/lib/libQt5EglFSDeviceIntegration.so.5
QOpenGLContext::create() () from /usr/lib/libQt5Gui.so.5
QEglFSWindow::create() () from /usr/lib/libQt5EglFSDeviceIntegration.so.5
QEglFSIntegration::createPlatformWindow(QWindow*) const () from /usr/lib/libQt5EglFSDeviceIntegration.so.5
QWindowPrivate::create(bool, unsigned int) () from /usr/lib/libQt5Gui.so.5
QWidgetPrivate::create() () from /usr/lib/libQt5Widgets.so.5
QWidget::create(unsigned int, bool, bool) () from /usr/lib/libQt5Widgets.so.5
QWidgetPrivate::setVisible(bool) () from /usr/lib/libQt5Widgets.so.5
看到这一点,我的假设是 QWidget 出于某种未知原因试图创建一个 QWindow 。根据 Qt EGLFS 文档,这是无效的行为,因为如果在 EGLFS 上运行,您不能混合使用 QWindow 和 QWidget。
由于我对 Qt 内部的了解有限,我不确定如何解决这个问题。这可能是Qt中的错误吗?
解决方案
推荐阅读
- flutter - 禁用 Flutter 文本基线
- mysql - 如何为范围定义的标准优化复合选择?
- python - 函数 cv::reduce 中不支持的输入和输出数组格式组合
- ios - 如何获取 Apple Music API 的目录播放列表 ID?
- freemarker - 如何在多个 if 和 else 块中使用自由标记模板编写干净的代码?
- apache-spark - 如何处理 Spark 结构化流中的小文件问题?
- css - 粘性导航活动状态在单击而不是滚动时起作用
- firebase - 在 iOS 上测试动态链接,无需先发布到应用商店
- java - 如果 hascode 函数为 false 而 equal 函数为 true 会发生什么
- java - 使用单数组方法的 JTable 2D 数组