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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Авторизация пред запуском программы  (Прочитано 10858 раз)
LEO
Гость
« : Сентябрь 28, 2012, 12:51 »

Привет, делаю авторизацию перед запуском главного окна. В окне авторизации: имена пользователей  представлены в виде QComboBox и поле Lineedit для пароля, вопрос как сделать каждому имени в комбобоксе соответствующий пароль?
 Непонимающий
Записан
Bepec
Гость
« Ответ #1 : Сентябрь 28, 2012, 12:57 »

QMap<Имя, пароль>
Записан
LEO
Гость
« Ответ #2 : Сентябрь 28, 2012, 13:13 »

QMap<Имя, пароль>
а может есть вариант с присвоением itemy qcomboboxa текстового значения lineedita?
типо

if(ui->combobox->currentText(1)=ui->lineedit->setText.toString("1234"))

илиподобное не уместно в данной ситуации?
Записан
Bepec
Гость
« Ответ #3 : Сентябрь 28, 2012, 13:14 »

Ты ж всё равно будешь сверку производить. Какая разница где будут лежать данные? Улыбающийся

Хотя сам недавно упивался подобной идеей. Смотри -

Код:
void QComboBox::setItemData ( int index, const QVariant & value, int role = Qt::UserRole )
Записан
LEO
Гость
« Ответ #4 : Сентябрь 28, 2012, 15:00 »

не могу разобраться с QMap, не понятно как заносим туда данные, пробую так:

Код:
void Dialog::auth()
{
    QMap <int,QString> pass;
    pass.insert(ui->comboBox->currentIndex(1),ui->lineEdit->setText("123");)

}
Записан
mutineer
Гость
« Ответ #5 : Сентябрь 28, 2012, 15:03 »

разве ui->lineEdit->setText("123") возвращает какой-то результат?

да и у QComboBox::currentIndex() нет параметров

Ты что подразумевал этим кодом-то?
Записан
LEO
Гость
« Ответ #6 : Сентябрь 28, 2012, 15:15 »

разве ui->lineEdit->setText("123") возвращает какой-то результат?

да и у QComboBox::currentIndex() нет параметров

Ты что подразумевал этим кодом-то?

у меня combobox, там 5 записей,как я понял у  каждой записи есть свой индекс combobox, вообще надо чтобы каждый индекс соответствовал определенной записи набранной в  lineedit, типо системы авторизации т.е. фамилия-пароль, -> проверка, -> запуск...  
« Последнее редактирование: Сентябрь 28, 2012, 15:29 от LEO » Записан
mutineer
Гость
« Ответ #7 : Сентябрь 28, 2012, 15:22 »

Твой кусок кода неправильный с точки зрения синтаксиса, прежде всего

Поэтому уточни что ты имел в виду той строчкой конкретно
« Последнее редактирование: Сентябрь 28, 2012, 15:34 от mutineer » Записан
LEO
Гость
« Ответ #8 : Сентябрь 28, 2012, 15:38 »

Твой кусок кода неправильный с точки зрения синтаксиса, прежде всего

Поэтому уточни что ты имел в виду той строчкой конкретно

Функция QComboBox::currentIndex() возвращает индекс текущего элемента (начиная с 0), или нет?
изначально планировал занести данные в QMap, а потом сверять значения, т.е.
в комбобоксе "Петя", ему надо ввести "1234"  и т.д.



« Последнее редактирование: Сентябрь 28, 2012, 15:42 от LEO » Записан
mutineer
Гость
« Ответ #9 : Сентябрь 28, 2012, 15:39 »

Функция QComboBox::currentIndex() возвращает индекс текущего элемента (начиная с 0), или нет?

Ну ты же видишь по доке, что возвращает. А что за единицу ты ей передаешь?
Записан
Bepec
Гость
« Ответ #10 : Сентябрь 28, 2012, 15:41 »

Заполнение
Код:
QCombobox box;
box.addItem("LEO", "password")
Слот проверки
Код:
if (box.currentIndex()->itemData() == ui.lineEdit->text())
    qDebug() << "Ok";
else
    qDebug() << "NoOk";
Записан
mutineer
Гость
« Ответ #11 : Сентябрь 28, 2012, 15:46 »

Заполнение
Код:
QCombobox box;
box.addItem("LEO", "password")
Слот проверки
Код:
if (box.currentIndex()->itemData() == ui.lineEdit->text())
    qDebug() << "Ok";
else
    qDebug() << "NoOk";

Все-таки правильнее будет
Код:
box.itemData(box.currentIndex())
Записан
LEO
Гость
« Ответ #12 : Сентябрь 28, 2012, 16:14 »

большое спасибо, все работает Улыбающийся
Записан
Bepec
Гость
« Ответ #13 : Сентябрь 28, 2012, 16:48 »

Не спорю, но писал на коленке убитого зерга, нервно перезаряжая ногой двухствольный копьемёт.
Записан
andrew.k
Гость
« Ответ #14 : Сентябрь 29, 2012, 00:09 »

Зачем вообще пароль хранить в ГУЕ? О_О
Диалог должен просто предоставить возможно получить имя и пароль, а дальше это должно быть передано в некий модуль аутентификации, который должен вернуть успех или неудачу.

Что ж за мания такая в гуй лепить логику?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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