禁止显示警告"QApplication was not created in main() thread"
Suppress warning "QApplication was not created in main() thread"
我创建了一个基于Qt的网络库,用于不运行Qt事件循环的应用程序,这些应用程序不一定是Qt应用程序。这是通过在线程中创建一个QCoreApplication
实例来实现的,该答案来自是否可以在不调用 QApplication::exec() 的情况下创建本地事件循环?
这非常有效,但它使 Qt 感到不安(我认为它担心我会尝试在主线程之外操纵 GUI,这不起作用,但我不是),因此它打印了一个警告:WARNING: QApplication was not created in main() thread
.
否则该警告将打印到 X11 控制台,并且很可能导致我的用户输入一堆不必要的缺陷。但是,我想抑制此错误,因为我将qDebug
用于某些合法目的并希望看到未来的警告。有没有办法做到这一点,比如某种Qt #pragma
?
编辑:
之前有人问过一个类似的问题:Qt控制台应用程序"警告:QApplication不是在main()线程中创建的",但答案基本上只是一个代码审查,没有任何有意义的想法来抑制警告。
出现此问题是因为您在创建QApplication之前正在接触Qt API(在主线程中,或仅在某个线程中)。你不能这么做。特别是,你正在创建一个某种类型的QObject,它在Qt中设置了Qt本身应该认为是main
线程的地方。
在创建QApplication之前,您唯一可以使用的Qt API是明确记录为在这种情况下安全的API。
所以:不要那样做。首先构建一个 QCoreApplication,然后您就可以自由了。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- netcat command in c++
- Difference in displaying cv2 Mat
- 代码在main()中运行,但在函数中出现错误
- C++ MFC Libraries in Travis CI
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- qmlRegisterType in main 表现得很奇怪
- QT c++ "Windows.h no such a file or dictionary in main.ccp"
- main.cpp中的错误:函数库中的函数"not declared in this scope",但实际上是
- 线程中的异常 "main" java.lang.UnsatisfiedLinkError: no JNTIest in java.library.path
- 在 OpenGL 计划链路状态检查期间"No definition of main in vertex shader"
- OpenCV "referenced from: _main in main.o"构建错误
- Qt控制台应用程序"WARNING: QApplication was not created in the main() thread"
- 在第 16,54,55,56,57,58 行中,我收到错误"Statement missing ; in function main()"为什么?
- 禁止显示警告"QApplication was not created in main() thread"
- 我收到错误:"in function main: undefined reference to Fraction::Fraction()"
- OpenCV, XCode 中的链接错误, 架构的未定义符号 x86_64: "_cvHaarDetectObjects" , 引用自: _main in main.o
- (更新)QT QML 5.6 - 什么原因导致此警告"QApplication was not created in the main() thread"?
- 即使我已经有分号"Statement missing ; in function main()" C++
- 体系结构的未定义符号x86_64:"_glutInit",引用自:_main in main.o / Netbeans on Mac