Название: QLineEdit Отправлено: pablo от Ноября 23, 2004, 15:00 Я создаю два окна для ввода с клавиатуты, firstLineEdit и secondLineEdit
потом создаю пушбатон, unionButton. Вначале она неактивирована. Можно ли связать два этих окна так, чтобы кнопка активировалась только тогда когда обе строки не пустые ??? Если писать как: connect(firstLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(enableUnionButton(const QString&))); connect(secondLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(enableUnionButton(const QString&))); connect(unionButton, SIGNAL(clicked()), this, SLOT(unionClicked())); то кнопка активируется когда хотя бы одна строка не пустая, как исправить этот недостаток ??? Название: QLineEdit Отправлено: Zmey от Ноября 23, 2004, 16:40 Написать слот, который будет проверять обе лайнэдит и
Цитировать когда обе строки не пустые делать enableUnionButton. Ну и подконнектить этот слот, естественно к обоим лайеэдитам на SIGNAL(textChanged(const QString &)).Название: QLineEdit Отправлено: pablo от Ноября 23, 2004, 16:51 Так я так и делаю, только вся проблема в том, что если хоть одна строка не пустая то кнопка активируется,
а мне надо сделать так, чтобы она активировалась только тогда когда не пустые обе строки :( Название: QLineEdit Отправлено: Zmey от Ноября 23, 2004, 17:28 Цитата: "pablo" Так я так и делаю, только вся проблема в том, что если хоть одна строка не пустая то кнопка активируется, а мне надо сделать так, чтобы она активировалась только тогда когда не пустые обе строки :( Я ж написал: проверять обе сроки, и если обе не пусты, то setEnable(TRUE). Эта проверка в функции, а функция в SLOT(), который в connect(firstLineEdit, SIGNAL(textChanged(const QString &)),... и connect(secondLineEdit, SIGNAL(textChanged(const QString &)),... Что не ясно?.. Название: QLineEdit Отправлено: Hellenna от Ноября 23, 2004, 22:33 можно сделать так
Код: connect(firstLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(checkEmpty(const QString&))); Название: QLineEdit Отправлено: Zmey от Ноября 24, 2004, 09:38 Цитата: "Hellenna" можно сделать так Код: connect(firstLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(checkEmpty(const QString&))); Точно, только: if(!(firstLineEdit->text().isEmpty()||secondLineEdit->text().isEmpty())); А лучше checkEmpty(const QString& s) { unionButton->setEnabled(!(firstLineEdit->text().isEmpty()||secondLineEdit->text().isEmpty())); } Название: QLineEdit Отправлено: Hellenna от Ноября 24, 2004, 15:54 Цитата: "Zmey" Точно, только: if(!(firstLineEdit->text().isEmpty()||secondLineEdit->text().isEmpty())); согласна. просто написала не задумываясь! так оно всегда бывает... :) :) Название: QLineEdit Отправлено: pablo от Ноября 24, 2004, 19:04 Спасибо.
Попробую Если не получися,то спрошу снова. :) |