0

我在 Visual Studio 的 gTest 中使用了 QApplication 对象。

int argc = 0;
char **argv = 0;
QMainWindow *window;

TEST() {
    app = new QApplication(argc, argv);
    window = new QMainWindow();
// Test Execution 
// Data gathering
    app.exec();
    delete window;
    window = new QMainWindow();
    delete app;
    app = new QApplication(argc, argv);
// Test Execution 
// Data gathering
    app.exec();
}

而且效果很好。

如果我在 Linux 上使用相同的代码段,并且在第二次调用时生成的窗口exec()是空的,我必须终止执行。

在 Linux 上使用它缺少什么。

进行两个单独的测试也不起作用

4

1 回答 1

0

Ronny Brendel had the right Question in the comment.

The solution is not to reinitialize the QApplication.

delete app;
app = new QApplication(argc, argv);

must be removed.

于 2018-01-18T12:36:15.943 回答