Russian Qt Forum
Май 22, 2024, 14:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QLineEdit  (Прочитано 8104 раз)
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()));

то кнопка активируется когда хотя бы одна строка не пустая, как исправить этот недостаток Непонимающий
Записан
Zmey
Гость
« Ответ #1 : Ноябрь 23, 2004, 16:40 »

Написать слот, который будет проверять обе лайнэдит и
Цитировать
когда обе строки не пустые
делать enableUnionButton. Ну и подконнектить этот слот, естественно к обоим лайеэдитам на  SIGNAL(textChanged(const QString &)).
Записан
pablo
Гость
« Ответ #2 : Ноябрь 23, 2004, 16:51 »

Так я так и делаю, только вся проблема в том, что если хоть одна строка не пустая то кнопка активируется,
 а мне надо сделать так, чтобы она активировалась только тогда когда не пустые обе строки Грустный
Записан
Zmey
Гость
« Ответ #3 : Ноябрь 23, 2004, 17:28 »

Цитата: "pablo"
Так я так и делаю, только вся проблема в том, что если хоть одна строка не пустая то кнопка активируется,
 а мне надо сделать так, чтобы она активировалась только тогда когда не пустые обе строки Грустный

Я ж написал: проверять обе сроки, и если обе не пусты, то setEnable(TRUE). Эта проверка в функции, а функция в SLOT(), который в connect(firstLineEdit, SIGNAL(textChanged(const QString &)),... и connect(secondLineEdit, SIGNAL(textChanged(const QString &)),...
Что не ясно?..
Записан
Hellenna
Гость
« Ответ #4 : Ноябрь 23, 2004, 22:33 »

можно сделать так

Код:
connect(firstLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(checkEmpty(const QString&)));

connect(secondLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(checkEmpty(const QString&)));

checkEmpty(const QString& s)
{
     if(firstLineEdit->text().isEmpty()&&secondLineEdit->text().isEmpty())
             unionButton->setEnabled(true);
}
Записан
Zmey
Гость
« Ответ #5 : Ноябрь 24, 2004, 09:38 »

Цитата: "Hellenna"
можно сделать так

Код:
connect(firstLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(checkEmpty(const QString&)));

connect(secondLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(checkEmpty(const QString&)));

checkEmpty(const QString& s)
{
     if(firstLineEdit->text().isEmpty()&&secondLineEdit->text().isEmpty())
             unionButton->setEnabled(true);
}


Точно, только:  if(!(firstLineEdit->text().isEmpty()||secondLineEdit->text().isEmpty()));
А лучше
checkEmpty(const QString& s)
{
             unionButton->setEnabled(!(firstLineEdit->text().isEmpty()||secondLineEdit->text().isEmpty()));
}
Записан
Hellenna
Гость
« Ответ #6 : Ноябрь 24, 2004, 15:54 »

Цитата: "Zmey"


Точно, только:  if(!(firstLineEdit->text().isEmpty()||secondLineEdit->text().isEmpty()));

согласна. просто написала не задумываясь! так оно всегда бывает...  Улыбающийся  Улыбающийся
Записан
pablo
Гость
« Ответ #7 : Ноябрь 24, 2004, 19:04 »

Спасибо.
Попробую
Если не получися,то спрошу снова. Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.151 секунд. Запросов: 20.