Qt QMessageBox Gui在为Linux而不是Windows编译时有效

时间:2018-10-02 22:10:01

标签: linux windows-10 qt

我有一个为Linux和Windows编译的程序。在linux中,一切运行顺利,但是在Windows中,当我尝试使用QMessageBox弹出成功或失败通知时出现错误。该错误表明所有QWidget必须位于主gui线程中。这些窗口小部件由MainWindow创建和拥有,该窗口完全在主线程中(实例化并仅在main中使用)。使用相同的代码,可执行文件可以在Linux中顺利运行。为什么会有区别,我该怎么做才能在Windows上解决此问题?鉴于消息框是由主线程中已有的mainwindow类创建和使用的,我什至不知道如何将消息框移至主线程(如Windows错误所示)。

例如,我添加了以下代码,显示了MainWindow如何创建两个QMessageBox。

INSERT INTO `search_table` (id, txt)
    VALUES (id,
            CONCAT_WS(' ', table1.origname,
                           table2.byline,
                            ... ) );

同样,此代码在我的Linux应用程序中完全正常。另外-我可以使用QProgressDialog来使用相同的技术来弹出进度条。它是由MainWindow创建和拥有的,在Windows或Linux中都不会引起任何问题。

0 个答案:

没有答案