Сигнал срабатывает, хотя диалог не сфокусирован - PullRequest
1 голос
/ 27 апреля 2011

У меня есть диалог с элементами LineEdit.Я хочу закрыть диалог, если нажата клавиша ENTER, поэтому я добавил слот для сигнала returnPressed ():

ChPasswd::ChPasswd(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ChPasswd)
{
    ui->setupUi(this);
    connect(ui->NewPasswordInput, SIGNAL(returnPressed()), SLOT(checkPasswords()));
}

В какой-то момент я открываю окно сообщения:

QMessageBox mb(...);
mb.exec();
* 1006коробка открывается и получает фокус.Проблема в том, что когда я сейчас нажимаю ENTER, сигнал returnPressed в ChPasswd срабатывает и вызывается checkPasswords().Почему обрабатывается это событие клавиатуры?

1 Ответ

0 голосов
/ 18 декабря 2011

Хорошо, я только что понял это. Поскольку это диалоговое окно, нажатие ENTER автоматически вызывает другой слот. Этот слот также вызывает checkPasswords() и для этого создал второе окно сообщения, которое появляется, как только первое было закрыто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...