之前尝试在Qt的子线程中使用QMessageBox后程序崩溃退出了,后来查资料原因是UI界面不能在Qt的子线程中运行。今天我无意在子线程中调用了QFileDialog类打开了一个窗口,发现程序正常执行了。我发现QMessageBox与QFileDialog都是集成自QDialog,但是一个是正常的一个不是。请问一下这个的原因是什么,是不是QFileDialog类比较特殊,可以在子线程中运行呢?
2条回答 默认 最新
- 技术专家团-小桥流水 2022-01-07 16:51关注
UI必须在主线程中调用,因为在子线程中调用不安全(不是不能调用,但是在子线程中调用可能会出未知的错误,所以规定不允许在子线程中调用)
解决 无用评论 打赏 举报
悬赏问题
- ¥15 chaquopy python 安卓
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 有没有帮写代码做实验仿真的
- ¥15 報錯:Person is not mapped,如何解決?
- ¥30 vmware exsi重置后登不上
- ¥15 易盾点选的cb参数怎么解啊
- ¥15 MATLAB运行显示错误,如何解决?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题