Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Simulation click() for QMessageBox::question don't work properly



  • I have a wrapper for QMessageBox::question

    @bool Ask( const QString& text )
    {
    QMessageBox::StandardButton res;

    res = QMessageBox::question(    
        nullptr,
        QObject::tr( "Confirm Action" ),
        text,
        QMessageBox::Yes | QMessageBox::No); 
    

    return res == QMessageBox::Yes;
    }@

    And code that simulates pushing Ok button in the test

    @QList<QPushButton*> allPButtons = dialog->findChildren<QPushButton*>();
    for( auto it : allPButtons )
    {
    if( dialog->buttonRole( it ) == QMessageBox::YesRole )
    {
    it->click();
    break;
    }
    }@

    It closes the dialog, BUT the result (res variable) is QMessageBox::No.
    So the Ask function returns false.

    What need to fix to get QMessageBox::Yes in the result of QMessageBox::question;

    PS: when user clicks the Ok button by mouse - all works properly.



  • Hi,

    to understand what's going wrong print with qDebub() the text of clicked button



  • Sorry for every one, I found the problem. It in my code for processing dialogs in the tests. After some corrections all works properly.


Log in to reply