1

我正在做 web 界面测试程序,它应该同时在两个 webkit 窗口中打开两个 url。

我已经为测试自动化编写了代码。

1) 用户按下“Go”按钮并打开 webkit (QWidget) 窗口

2) TestBot 类对象执行测试

3) 关闭

现在我的问题是:单击“开始”按钮后,如何打开两个(或三个或更多)webkit (QWidget) 窗口,我的意思是,如何同时启动多个 TestBot 以便它们并行完成所有工作?

我明白,我需要查看多线程,我想我需要将 QThread 继承到我的 TestBot 类定义中作为“class TestBot:public QThread”,但这是正确的解决方案吗?我做对了吗?接下来要做什么?

我不能把代码写成:

QThread process1;
QThread process2;
process1->start();
//some code here
process1->quit();

process2->start();
//some code here
process2->quit();

让一切并行工作?

我是 Winapp 世界的新手,我来自 Web 编程。希望得到您的帮助!

4

2 回答 2

1

为了一次显示多个窗口,只需将它们排成一行并显示。

void ShowMultiple()
{
    QWidget *win1 = new QWidget();
    QWidget *win2 = new QWidget();
    QWidget *win3 = new QWidget();

    win1->show();
    win2->show();
    win3->show();
}

此代码运行后,应该会显示 3 个新的(空白)窗口。但是,如果您尝试执行一些需要很长时间并显示窗口的代码,情况可能会发生变化。在这种情况下,您可能想要查看线程或 Qt::Concurrent 示例,请记住,您真的,真的不能在任何其他线程中弄乱 UI。

于 2010-10-26T15:32:37.733 回答
0

您可以尝试使用QtConcurrent 命名空间中的函数来执行异步任务,特别是run一个。

于 2010-10-23T22:32:22.197 回答