Я столкнулся с той же проблеммой и Qt::WA_GroupLeader действительно помогает, но в помощи сказано, что этот атрибут устарел и нужно использовать QWidget::windowModality. Но что-то у меня не получается при помощи QWidget::windowModality добиться того же результата, что и с Qt::WA_GroupLeader.
Что делать?
Тоже столкнулся. Надо этот атрибут присваивать не окну, которое будет выскакивать, а модальному окну, поверх которого оно будет выскактвать. Пример для наглядности:
C++ (Qt)
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog>
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::on_pushButton_clicked()
{
    QPushButton *button = new QPushButton("push me plz"); 
    button->setAttribute(Qt::WA_DeleteOnClose);
    button->setWindowFlags(Qt::Dialog
                           | Qt::WindowSystemMenuHint
                           | Qt::WindowStaysOnTopHint
                           | Qt::CustomizeWindowHint);
    QDialog dlg(this);
    connect(button, SIGNAL(clicked()), &dlg, SLOT(accept()));
    connect(button, SIGNAL(clicked()), button, SLOT(close()));
    button->show();
    dlg.setWindowModality(Qt::WindowModal); // ввод от button не будет заблокирован
    dlg.resize(100,100);
    dlg.exec();
}