【问题标题】:Select QMessageBox stored as local variable for QTest选择 QMessageBox 存储为 QTest 的局部变量
【发布时间】:2021-07-14 12:43:17
【问题描述】:

我正在尝试使用 QTest 测试一个 GUI 应用程序。我可以访问ui_class.h 中的所有 UI 元素。问题是,我在主程序上创建了几个 QMessageBox 作为局部变量,当它们中的任何一个出现时,我需要它们使用QTest::mouseClick()

如果可能,我试图避免重新分配那些 QMessageBox,所以我尝试使用 QApplication::topLevelWidgets()QApplication::allWidgets() 获取小部件,但它们没有工作,因为我找不到任何继承到 @987654326 的 QWidget @。 QApplication::activeWindow() 也不能点击(或按回车,我只是想在点击或按回车后走得更远)。

因此,我需要知道如何选择在我正在测试的 GUI 应用程序中存储为局部变量的 QMessageBox,以将其选择为 QWidget

我存储的变量是QMessageBox::StandardButtonQMessageBox::warning

提前感谢您的帮助。

【问题讨论】:

    标签: c++ qt qtestlib


    【解决方案1】:

    您能显示更多代码吗? 不清楚:你用过吗

    QMessageBox(QWidget *parent = nullptr)
    

    构造函数或其他东西。您可能会使用obj->findChild<T>(name)qobject_cast()?如果您发布您的代码,我可能会尝试对其进行测试。

    【讨论】:

      【解决方案2】:

      好吧,在尝试了其他方法并遇到了另一个问题之后,最简单的解决方法是将标头函数上的所有 QMessageBox 声明为 public,这样我就可以通过 QTest 类访问它们。
      这就是使用静态消息的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-30
        • 2023-04-05
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        • 1970-01-01
        • 2012-10-12
        • 2019-03-05
        相关资源
        最近更新 更多