问题标签 [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.
c++ - Qt:获取当前应用程序调色板
我有一个类组成一个调色板并使用QApplication::instance()->setPalette(QPalette palette)
.
它有效地工作。
但后来我尝试用它QPalette QApplication::instance()->palette()
来提取一些颜色。
但在这里它不起作用,它只是返回默认调色板,而不是当前调色板。
在我发现它按照文档中的假设和描述工作之后。
现在我只有两个问题:
- 为什么它以如此奇怪、无用和违反直觉的模式工作?
- 如何检索使用设置的调色板
QApplication::instance()->setPalette(QPalette palette)
?
PS 不,我不能把那个调色板放在别处。
c++ - 请先实例化 QApplication 对象
我有一个静态类,并希望它具有 static QSettings
。但是随着我的初始化,我得到一个警告:
QCoreApplication::applicationDirPath: 请先实例化QApplication对象
作为一种解决方法QSetting
,我在 main 函数的开头手动初始化。有没有更好的方法来初始化我的静态成员?
谢谢!
qt - 每当将 QWidget 添加到 QApplication 的小部件树时,如何接收事件?
我想检查应用程序范围内的东西。具体来说,我想检查添加到应用程序中的每个小部件。
类似的事情可以在 JavaScript/HTML 中完成,您可以在其中添加触发 DOM 更改的 DOM 突变侦听器。
我可以收听添加的小部件QApplication
吗?具体来说,捕获QApplication
作为子级添加到对象的小部件或添加到任何顶级小部件或其子级、子级等的小部件......
如果不可能,最好的解决方法是什么?
c++ - 如何阻止 QApplication 出现在 Dock 中?
我正在 OS X 上制作一个控制台应用程序,它与桌面环境的特定部分(主要是使用 QCursor 的鼠标)进行交互,所以我不能使用 QCoreApplication(尽管我想要多少)。
该应用程序运行良好,只是每当我从命令行运行它时它就会显示在 Dock 中。我在网上查看了其他几个问题,但没有一个能解决我遇到的问题。
我调查了QSystemTrayIcon
,如果它可以摆脱弹出的讨厌的窗口,我会很好地使用它。这是我的代码缩小到最低限度,仍然存在我上面提到的问题。
.pro:
主.cpp:
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 而不是删除它。内存泄漏不是问题,因为它是在程序退出之前泄漏的。
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() 的样子:
---- 老问题\结束 ----
python - 从 Qapplication 事件循环创建一个新的 Qapplication
我已经重写了这个问题,以便更清楚。
在我的代码中,我创建了一个 QApplication,使用 QTimer.singleShot() 将一个插槽连接到应用程序,然后执行我的应用程序。
现在在这个插槽中,我想在另一个进程中创建另一个 QApplication,我使用了 multiprocessing.Process 类,并从进程内部尝试启动另一个 QApplication 并执行它,但是我有一个错误,因为事件循环已经在运行!,我知道我不能运行两个事件循环,但我正在另一个进程中运行新的 QApplication,所以它应该运行。
我知道这不是一个常见的实现,但在我的情况下运行它会容易得多。
这是一个代码示例:我得到的错误是“QCoreApplication::exec: 事件循环已经在运行”
python - qApp 与 QApplication.instance()
使用 PyQt5,这两个都返回应用程序对象:
但是为什么要print(QtWidgets.QApplication.instance() is QtWidgets.qApp)
打印False
?
c++ - Qt 中的事件循环是什么?
exec
关于 QApplication 的功能,我已经了解以下内容:
QApplication exec 启动主事件循环。它启动 GUI。它处理信号并在接收到它们时调用适当的槽。它一直等到调用 exit 并返回在 exit 中设置的值。
现在,当我们说事件循环时,是不是意味着Qt的内部代码中有一些while循环在运行,并且在那个while循环中编写了处理信号和槽的方法?
c++ - 在 4k 显示器上使用高 dpi 时创建 QApplication 会调整父窗口(非 Qt 窗口)的大小
使用 Qt5.6.1,我正在使用 QtWinMigrate 在父窗口中容纳 Qt 小部件。当父应用程序针对高 dpi 监视器进行缩放时,以下行:
终止缩放,调整父窗口的大小,使 150% 或 200% 的缩放明显跳到 100%。这是在我什至创建我的 Qt 窗口之前 - 只有 QApplication 的构造函数执行此操作。我尝试了各种技巧。像这样的 qt.conf 文件:
或在创建 QApplication 之前:
似乎都没有效果。如何防止这种调整大小?