问题标签 [qapplication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
220 浏览

c++ - 在 DLL 中启动多个 QApplication

我已使用此链接开始,[ https://stackoverflow.com/a/11056698/5609063][1]

我正在尝试创建一个在内部创建其 GUI 并自行清理的对象。

如果我想强制关闭,我也可以调用 quit() 来关闭 gui,或者我可以坐在 .exec 调用上,直到主窗口关闭。

FooObj.h

FooObj.c

GUIApp.h

GUIApp.c

在 GUIApp 中,有一个对 FooObjGUI 的调用,它使用 FooObj 到一个 gui 设置来处理我想要显示的所有数据以及我向用户公开的操作。

我的目的是让这段代码的用户不必担心 qt 并让它自己清理。

当我创建单个 FooObj 时,此代码在 dll 或 exe 中运行良好。我无法创建第二个 FooObj,因为我无法创建第二个 QApplication。我尝试了几个想法,在一个单独的线程中启动 a->exec(),但是没有处理事件并且 gui 处于空闲状态。

有没有办法在单个 dll 中跨多个线程调用 QApplication?是否有解决方法让 FooObj 使用相同的 QApplication 并且不阻止 dll 的执行?我目前唯一的解决方法是使用 2 个 dll 副本,但这不是一个好的长期解决方案。

0 投票
1 回答
1000 浏览

c++ - QOpenGLWidget 与 QApplication?

我们有一个基于 QWidget 的应用程序,该应用程序以前使用 QWindow 进行 OpenGL 渲染。为了使该窗口适合我们的应用程序,我们必须使用

以前我们只使用外部的 Qt OpenGL 库进行渲染。

我们希望从使用 QWindow 切换到某种类型的 QWidget,以便与触摸手势兼容,并且通常与我们应用程序的其余部分具有更好的整体兼容性。最新推荐的兼容 OpenGL 的 QWidget 似乎是 QOpenGLWidget,所以我们正在尝试使用它。

glContext是我们自己管理的OpenGLContext。

现在的问题是 QOpenGLWidget 不是 QSurface,所以我不能调用

使上下文在我的自定义 QOpenGLWidget 上成为当前的,就像我们之前使用自定义 QWindow 和我们自己的 OpenGLContext 一样。

如果我尝试使用,QOpenGLWidget::makeCurrent();那么这会使用错误的上下文并尝试使用一些神奇的 QT 处理的上下文或我不理解的东西来做一些事情。

结果是当我们尝试调用创建我们的 OpenGLContext 之后

它总是无法初始化 OpenGL 函数。

我一直在阅读有关该主题的所有其他资源,并遇到了类似的旧 Stack Overflow 问题: QOpenGLWidget with shared OpenGL context?

这个问题的答案并没有解决我的问题,因为我们使用的是 QApplication,而不是 QGuiApplication,因为这是一个基于 QWidget 的应用程序。 QGuiApplicationPrivate::init()永远不会被调用并且QOpenGLContext::globalShareContext()返回一个空指针,因为它没有被初始化。

不幸的是,我迫不及待QOpenGLWidget::initializeGL()地等待被调用来初始化托管的 QT,OpenGLContext因为我们已经在各种类上拥有大量 OpenGL 资源,这些资源试图在此之前进行初始化。

有没有其他人遇到过同样的问题?

有什么建议么?

0 投票
0 回答
910 浏览

c++ - 尽管包含了 qapplication,但无法在没有 qapplication 的情况下创建 qwidget

突然出现以下错误:

QWidget:不能在没有 QApplication 的情况下创建 QWidget

它工作正常,我已经QApplication包含了一个QApplication之前声明的对象MainWindow,但错误仍然存​​在。

0 投票
1 回答
1555 浏览

c++ - exec() 处的 Qt 分段错误

尝试QProcessHmiApplication派生自QApplication.

应用程序在第 6 行抛出一个SIGSEGVmain.cpp。仅当hmiapplication.cpp注释掉第 11 行时才会发生这种情况(如果我没有qDebug()QProcess 的标准输出)。

为了简单明了,我在创建 QProcess 时没有处理任何返回值。

主文件

hmiapplication.h

hmiapplication.cpp

编辑: 如果我添加QVector<Camera*> cameras;到标题和

对于源文件,我是否删除该行并不重要,qDebug()并且在这两种情况下都会引发分段错误。

Camera是一个派生类,并且在没有上面提到QLabel的情况下可以完美地工作。QProcess

0 投票
0 回答
1050 浏览

c++ - 为什么我收到错误“QWidget:必须在小部件之前构造 QApplication”?

我收到以下错误:

QWidget:必须在小部件之前构造一个 QApplication

3天前有效,但现在不再有效,我不知道为什么。

这个错误是什么意思?我不知道我是否修改了什么。

这是我的代码:

主windw.cpp

stat1.cpp

0 投票
1 回答
550 浏览

python - Accessing a common data object in a PyQt application

I have a GUI programmed in PyQt with many widgets and different windows, etc. The data for the GUI is stored in a python object. This object should be reachable from every widget in the program. Where should I put this object?

Right now I have it in the QMainWindow instance that is used for the program's main window. The problem is that it is hard to reach the QMainWindow object from deeply nested widgets. It seems much simpler to use the QApplication instance for that, because you can get it with QtCore.QCoreApplication.instance() (as shown in this answer). However, I couldn't find any other examples encouraging you to change the QApplication class, so I wonder if it really should be used that way.

What approach would you suggest?

0 投票
0 回答
387 浏览

qt - 使用 PyQt 将父 Qt 转换为非 qt 窗口

我正在尝试将 QMainWindow 作为非 qt 应用程序的父级(应用程序可能会更改)。关于如何做到这一点的任何想法?

qt 窗口可以正常打开,我可以在应用程序中与 python API 进行交互,但是如果我单击应用程序,qt 窗口会位于应用程序窗口的后面。我可以使用 Qt.WindowStaysOnTopHint 标志,但它在所有不理想的东西之上。

伪示例:如果您使用的应用程序(例如 Nuke)的主应用程序也是基于 qt 的,您将使用类似:

Maya 和任何其他基于 pyqt 的窗口也可以类似地工作。

但是,如果应用程序不是基于 qt:

在哪里:

任何示例(理想情况下)或有用的方向将不胜感激。

使用 PyQt5、Python 3.5 和 Linux。

0 投票
1 回答
111 浏览

python-3.x - 必须在 QWidget Pyqt5 之前构造 QApp

我启动了新的 PyQt5 程序,但遇到错误“必须在 QWidget 之前构建 QApplication”。

我理解错误,但没有找到我的代码首先构造我的 QWidget 的位置。

这是我的代码:

如果你有任何想法,我很高兴!

新年快乐,享受你的代码:)。

提前谢谢

0 投票
2 回答
3934 浏览

c++ - Qt 如何选择默认样式?

在 Qt GUI 应用程序中,QApplication::style()->objectName()将返回当前样式,例如“windowsvista”。

它如何/在哪里选择这种默认样式,以及它使用什么信息来决定?

0 投票
1 回答
846 浏览

linux - 在 Linux 中使用 QApplication 和 gTest

我在 Visual Studio 的 gTest 中使用了 QApplication 对象。

而且效果很好。

如果我在 Linux 上使用相同的代码段,并且在第二次调用时生成的窗口exec()是空的,我必须终止执行。

在 Linux 上使用它缺少什么。

进行两个单独的测试也不起作用