问题标签 [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 投票
1 回答
2134 浏览

c++ - Qt:获取当前应用程序调色板

我有一个类组成一个调色板并使用QApplication::instance()->setPalette(QPalette palette).

它有效地工作。

但后来我尝试用它QPalette QApplication::instance()->palette()来提取一些颜色。

但在这里它不起作用,它只是返回默认调色板,而不是当前调色板。

在我发现它按照文档中的假设和描述工作之后。

现在我只有两个问题:

  1. 为什么它以如此奇怪、无用和违反直觉的模式工作?
  2. 如何检索使用设置的调色板 QApplication::instance()->setPalette(QPalette palette)

PS 不,我不能把那个调色板放在别处。

0 投票
2 回答
14838 浏览

c++ - 请先实例化 QApplication 对象

我有一个静态类,并希望它具有 static QSettings。但是随着我的初始化,我得到一个警告:

QCoreApplication::applicationDirPath: 请先实例化QApplication对象

作为一种解决方法QSetting,我在 main 函数的开头手动初始化。有没有更好的方法来初始化我的静态成员?

谢谢!

0 投票
2 回答
2046 浏览

qt - 每当将 QWidget 添加到 QApplication 的小部件树时,如何接收事件?

我想检查应用程序范围内的东西。具体来说,我想检查添加到应用程序中的每个小部件。

类似的事情可以在 JavaScript/HTML 中完成,您可以在其中添加触发 DOM 更改的 DOM 突变侦听器。

我可以收听添加的小部件QApplication吗?具体来说,捕获QApplication作为子级添加到对象的小部件或添加到任何顶级小部件或其级、子级等的小部件......

如果不可能,最好的解决方法是什么?

0 投票
1 回答
282 浏览

c++ - 如何阻止 QApplication 出现在 Dock 中?

我正在 OS X 上制作一个控制台应用程序,它与桌面环境的特定部分(主要是使用 QCursor 的鼠标)进行交互,所以我不能使用 QCoreApplication(尽管我想要多少)。

该应用程序运行良好,只是每当我从命令行运行它时它就会显示在 Dock 中。我在网上查看了其他几个问题,但没有一个能解决我遇到的问题。

我调查了QSystemTrayIcon,如果它可以摆脱弹出的讨厌的窗口,我会很好地使用它。这是我的代码缩小到最低限度,仍然存在我上面提到的问题。

.pro:

主.cpp:

0 投票
0 回答
629 浏览

c++ - QThread:在单线程程序中“在线程仍在运行时被销毁”

我的问题如下:在解析其他参数期间可能会返回函数(未到达 app.exec()),当 QApplication 对象被删除时,我收到以下错误消息QThread: Destroyed while thread is still running。作为一种可能的解决方案,我尝试在完成参数解析后创建 QApplication 。

app.thread()->quit();在 return 声明之前尝试过,但它没有帮助。

创建 QApplication 对象时,它会从 argc、argv 中删除特定参数(-style 等)。

是否可以在不创建 QApplication 对象的情况下手动从 argc、argv 获取它们?

奇怪的是,在单线程程序中QThread: Destroyed while thread is still running出现错误。

到目前为止,我发现的最好的“解决方案”是动态创建 QApplication 而不是删除它。内存泄漏不是问题,因为它是在程序退出之前泄漏的。

0 投票
2 回答
1024 浏览

android - (更新)QT QML 5.6 - 是什么导致此警告“QApplication 未在 main() 线程中创建”?

[更新] 好的,我正在更新我之前的问题。起初我以为当我widgets从 .pro 文件中删除时会弹出警告——这将是一种特殊的行为。深入挖掘后,我最终得到了一个完全空的应用程序,问题仍然存在。我的应用程序如下所示:

根据其他类似问题的帖子,我了解到QApplication需要首先进行初始化。在这种情况下,应用程序中没有其他内容。这个警告怎么还会出现?

W/ (16992): (null):0 ((null)): WARNING: QApplication was not created in the main() thread.

我正在使用该Android for x86 (GCC 4.9, Qt 5.6.0)工具包直接在我的 Android 设备上编译应用程序。

---- 旧问题\开始 ----

目前正在开发基于 Qt 5.6(C++ 和 QML)的 Android 应用程序。由于 UI 基于 QtQuick,我从 pro.file 中删除了“小部件”。

这导致警告:

而且...一旦我在 main() 中实例化 QQmlEngine(当然是在创建 QApplication 之后),也会显示此警告:

显然,应用程序在另一个线程中启动?和 main() 在另一个?一旦我将“小部件”放入 .pro 文件中,两个错误都不再出现。我真的不明白这两件事之间的相关性。PS 在程序的这个阶段并不真正相关,但我也没有在我的应用程序中创建任何新线程。 这就是我的 main() 的样子:

---- 老问题\结束 ----

0 投票
1 回答
922 浏览

python - 从 Qapplication 事件循环创建一个新的 Qapplication

我已经重写了这个问题,以便更清楚。

在我的代码中,我创建了一个 QApplication,使用 QTimer.singleShot() 将一个插槽连接到应用程序,然后执行我的应用程序。

现在在这个插槽中,我想在另一个进程中创建另一个 QApplication,我使用了 multiprocessing.Process 类,并从进程内部尝试启动另一个 QApplication 并执行它,但是我有一个错误,因为事件循环已经在运行!,我知道我不能运行两个事件循环,但我正在另一个进程中运行新的 QApplication,所以它应该运行。

我知道这不是一个常见的实现,但在我的情况下运行它会容易得多。

这是一个代码示例:我得到的错误是“QCoreApplication::exec: 事件循环已经在运行”

0 投票
1 回答
9114 浏览

python - qApp 与 QApplication.instance()

使用 PyQt5,这两个都返回应用程序对象:

但是为什么要print(QtWidgets.QApplication.instance() is QtWidgets.qApp)打印False

0 投票
1 回答
13067 浏览

c++ - Qt 中的事件循环是什么?

exec关于 QApplication 的功能,我已经了解以下内容:

QApplication exec 启动主事件循环。它启动 GUI。它处理信号并在接收到它们时调用适当的槽。它一直等到调用 exit 并返回在 exit 中设置的值。

现在,当我们说事件循环时,是不是意味着Qt的内部代码中有一些while循环在运行,并且在那个while循环中编写了处理信号和槽的方法?

0 投票
1 回答
426 浏览

c++ - 在 4k 显示器上使用高 dpi 时创建 QApplication 会调整父窗口(非 Qt 窗口)的大小

使用 Qt5.6.1,我正在使用 QtWinMigrate 在父窗口中容纳 Qt 小部件。当父应用程序针对高 dpi 监视器进行缩放时,以下行:

终止缩放,调整父窗口的大小,使 150% 或 200% 的缩放明显跳到 100%。这是在我什至创建我的 Qt 窗口之前 - 只有 QApplication 的构造函数执行此操作。我尝试了各种技巧。像这样的 qt.conf 文件:

或在创建 QApplication 之前:

似乎都没有效果。如何防止这种调整大小?