之前尝试在Qt的子线程中使用QMessageBox后程序崩溃退出了,后来查资料原因是UI界面不能在Qt的子线程中运行。今天我无意在子线程中调用了QFileDialog类打开了一个窗口,发现程序正常执行了。我发现QMessageBox与QFileDialog都是集成自QDialog,但是一个是正常的一个不是。请问一下这个的原因是什么,是不是QFileDialog类比较特殊,可以在子线程中运行呢?
2条回答 默认 最新
技术专家团-小桥流水 2022-01-07 16:51关注UI必须在主线程中调用,因为在子线程中调用不安全(不是不能调用,但是在子线程中调用可能会出未知的错误,所以规定不允许在子线程中调用)
解决 无用评论 打赏 举报