crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QLineEdit проверить, Как проверить что информация не нулевая?
fortero
  опции профиля:
сообщение 10.5.2011, 22:37
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 132
Регистрация: 4.12.2010
Пользователь №: 2242

Спасибо сказали: 0 раз(а)




Репутация:   0  


Подскажите пожалуйста ато мозг устал...
Как в виджите QLineEdit проверить что есть информация не нуливая в пределах одной области видемости, что бы потом можно было дать разришение на нажатие кнопок?
Спасибо за внимание!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.5.2011, 22:55
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


fortero, что значит - "нулевая информация" и что за "пределы видимости" ? :) И про какие кнопки речь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 10.5.2011, 23:01
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 132
Регистрация: 4.12.2010
Пользователь №: 2242

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 10.5.2011, 22:55) *
fortero, что значит - "нулевая информация" и что за "пределы видимости" ? :) И про какие кнопки речь?

void FormsAddEditSp::fSkAdd(){
    setMinimumSize(600, 380);
    setMaximumSize(600, 380);
    grBox = new QGroupBox(tr("Здесь вы можите добавить запись в справочник корреспандентов:"), this);
    
    nameL = new QLabel(tr("Наименование: "), this);
    descriptionL = new QLabel(tr("Полное имя: "), this);
    accountL = new QLabel(tr("Расчётный счёт: "), this);
    mfoL = new QLabel(tr("МФО: "), this);
    kodokpoL = new QLabel(tr("Код ОКПО: "), this);
    addressL = new QLabel(tr("Адрес: "), this);
    inmpL = new QLabel(tr("Регестрационный номер: "), this);
    nsvdL = new QLabel(tr("Номер свидетельства: "), this);
    phoneL = new QLabel(tr("Телефон: "), this);
    
    nameE = new QLineEdit(this);
    descriptionE = new QLineEdit(this);
    accountE = new QLineEdit(this);
    mfoE = new QLineEdit(this);
    kodokpoE = new QLineEdit(this);
    addressE = new QLineEdit(this);
    inmpE = new QLineEdit(this);
    nsvdE = new QLineEdit(this);
    phoneE = new QLineEdit(this);
    //Валидность
    nameE->setMaxLength(30);
    descriptionE->setMaxLength(255);
    addressE->setMaxLength(50);
    QRegExp evAccount(tr("[0-9]{14}"));
    accountE->setValidator(new QRegExpValidator(evAccount, this));
    QRegExp evKodokpo(tr("[0-9]{10}"));
    kodokpoE->setValidator(new QRegExpValidator(evKodokpo, this));
    QRegExp evMfoInmpNsvd(tr("[0-9]{12}"));
    mfoE->setValidator(new QRegExpValidator(evMfoInmpNsvd, this));
    inmpE->setValidator(new QRegExpValidator(evMfoInmpNsvd, this));
    nsvdE->setValidator(new QRegExpValidator(evMfoInmpNsvd, this));
    QRegExp evPhone(tr("[0-9+() -]{36}"));
    phoneE->setValidator(new QRegExpValidator(evPhone, this));
    //end
    
    btnBox = new QDialogButtonBox(Qt::Horizontal, this);
    btnBox->addButton(tr("Записать"), QDialogButtonBox::AcceptRole);
    btnBox->addButton(tr("Отмена"), QDialogButtonBox::RejectRole);

    gridLay = new QGridLayout(this);
    gridLay->setMargin(15);
    gridLay->setSpacing(10);

    gridLay->addWidget(nameL, 1, 0);
    ...
бля-бля-бля
              ....
    gridLay->addWidget(btnBox, 10, 1, 1, 2);
    
    gridLay->setColumnStretch(1, 2);
    gridLay->setRowStretch(10, 2);
    grBox->move(10, 10);
    grBox->resize(580, 360);
    grBox->setLayout(gridLay);
        
    connect(btnBox, SIGNAL(accepted()), this, SLOT(accept()));
    connect(btnBox, SIGNAL(rejected()), this, SLOT(reject()));
    
}

И другая функция:
bool FormsAddEditSp::buttonFSkAdd(){
    if(exec() == QDialog::Accepted){
        finList << nameE->text() << descriptionE->text() << accountE->text() << mfoE->text() << addressE->text() << phoneE->text() << kodokpoE->text() <<inmpE->text() << nsvdE->text();
        DbConnect *fdb = new DbConnect(this);
        fdb->insertDT(tr("firm"), tr("name,description,account,mfo,address,phone,kod_okpo,inmp,nsvd"), finList);
        delete fdb;
        QMessageBox::about(this, tr("Внимание!"), tr("Всё работает!!!"));
        return true;
        }
        return false;
}

Как сделать, что бы не добравшись до второй функции, можно было выяснить QLineEdit полные или пустые???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.5.2011, 23:13
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(fortero @ 11.5.2011, 2:01) *
Как сделать, что бы не добравшись до второй функции, можно было выяснить QLineEdit полные или пустые???


наверное, проверить

if(nameE->text()=="")
{
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 10.5.2011, 23:23
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 132
Регистрация: 4.12.2010
Пользователь №: 2242

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 10.5.2011, 23:13) *
Цитата(fortero @ 11.5.2011, 2:01) *
Как сделать, что бы не добравшись до второй функции, можно было выяснить QLineEdit полные или пустые???


наверное, проверить

if(nameE->text()=="")
{
}


Так не получется, потому, что они в одной областе видемости и с самого начала поля пустые он сразу начнёт сверять... Я уже пробовал кучу подобных вариантов тут как то через сигнал слот надо действовать... Вот как только моСк спёкся за целый день!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.5.2011, 23:27
Сообщение #6


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


при чём тут область видимости

я так и не понял, что требуется )))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 11.5.2011, 1:22
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 132
Регистрация: 4.12.2010
Пользователь №: 2242

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 10.5.2011, 23:27) *
при чём тут область видимости

я так и не понял, что требуется )))

Ну есть, форма, она пустая QLineEdit, когда в неё вводиш данные нужно что бы определяло это, а если это описать в этой функции он автоматом думает что она пустая она же не обновляется...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
breeve
  опции профиля:
сообщение 11.5.2011, 1:31
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

Спасибо сказали: 9 раз(а)




Репутация:   1  


Цитата(fortero @ 11.5.2011, 2:22) *
Ну есть, форма, она пустая QLineEdit, когда в неё вводиш данные нужно что бы определяло это, а если это описать в этой функции он автоматом думает что она пустая она же не обновляется...

Ты можешь подключить сигнал QLineEdit::textChanged(QString), QLineEdit::textEdited(QString) или QLineEdit::editFinished()
к своему слоту и там уже обрабатывать то что тебе надо.
И сигнал будет посылаться не сразу при запуске, а когда юзер что-то сделает во время работы.

Сообщение отредактировал breeve - 11.5.2011, 1:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 11.5.2011, 1:32
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 132
Регистрация: 4.12.2010
Пользователь №: 2242

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(breeve @ 11.5.2011, 1:31) *
Цитата(fortero @ 11.5.2011, 2:22) *
Ну есть, форма, она пустая QLineEdit, когда в неё вводиш данные нужно что бы определяло это, а если это описать в этой функции он автоматом думает что она пустая она же не обновляется...

Ты можешь подключить сигнал QLineEdit::textChanged(QString), QLineEdit::textEdited(QString) или QLineEdit::editFinished()
к своему слоту и там уже обрабатывать то что тебе надо.

Я уже думал об этом, но нужно не только изминение отследить но и ч то бы оно не пустым осталось!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
breeve
  опции профиля:
сообщение 11.5.2011, 1:37
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

Спасибо сказали: 9 раз(а)




Репутация:   1  


Цитата(fortero @ 11.5.2011, 2:32) *
Я уже думал об этом, но нужно не только изминение отследить но и ч то бы оно не пустым осталось!

Если я тебя правильно понял, то ты в этом слоте делай обработку т.о. если строка пустая заблокировать кнопку, если нет то разблокировать.
Ну и изначально блокируешь кнопку, чтобы пользователь в любом случае что-нибудь ввел.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 17:09