【问题标题】:How can I wait for a QWidget to close using QTestLib? [Qt5]如何使用 QTestLib 等待 QWidget 关闭? [Qt5]
【发布时间】:2017-10-09 23:20:21
【问题描述】:

我正在为派生自QWidget 的类编写基于QTest 的测试用例。

显示小部件后,我希望测试在小部件关闭后立即结束

我的第一次尝试是使用QSignalSpy,结果发现QWidget确实没有在close()上发出信号。

那么使用QTest 原语执行此操作的“正确方法”是什么?

【问题讨论】:

    标签: c++ qt qt5 qtestlib qsignalspy


    【解决方案1】:

    如果您为小部件设置specify Qt::WA_DeleteOnClose 属性并等待其destroyed() 信号怎么办?

    pMyTestWidget->setAttribute(Qt::WA_DeleteOnClose);
    pMyTestWidget->show();
    
    // test thread...
    QSignalSpy watchDog(pMyTestWidget, SIGNAL(destroyed(QObject*)));
    watchDog.wait();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 2015-09-30
      相关资源
      最近更新 更多