Russian Qt Forum

Qt => Вопросы новичков => Тема начата: LEO от Сентябрь 28, 2012, 12:51



Название: Авторизация пред запуском программы
Отправлено: LEO от Сентябрь 28, 2012, 12:51
Привет, делаю авторизацию перед запуском главного окна. В окне авторизации: имена пользователей  представлены в виде QComboBox и поле Lineedit для пароля, вопрос как сделать каждому имени в комбобоксе соответствующий пароль?
 ???


Название: Re: Авторизация пред запуском программы
Отправлено: Bepec от Сентябрь 28, 2012, 12:57
QMap<Имя, пароль>


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Сентябрь 28, 2012, 13:13
QMap<Имя, пароль>
а может есть вариант с присвоением itemy qcomboboxa текстового значения lineedita?
типо

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

илиподобное не уместно в данной ситуации?


Название: Re: Авторизация пред запуском программы
Отправлено: Bepec от Сентябрь 28, 2012, 13:14
Ты ж всё равно будешь сверку производить. Какая разница где будут лежать данные? :)

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

Код:
void QComboBox::setItemData ( int index, const QVariant & value, int role = Qt::UserRole )


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Сентябрь 28, 2012, 15:00
не могу разобраться с QMap, не понятно как заносим туда данные, пробую так:

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

}


Название: Re: Авторизация пред запуском программы
Отправлено: mutineer от Сентябрь 28, 2012, 15:03
разве ui->lineEdit->setText("123") возвращает какой-то результат?

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

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


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Сентябрь 28, 2012, 15:15
разве ui->lineEdit->setText("123") возвращает какой-то результат?

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

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

у меня combobox, там 5 записей,как я понял у  каждой записи есть свой индекс combobox, вообще надо чтобы каждый индекс соответствовал определенной записи набранной в  lineedit, типо системы авторизации т.е. фамилия-пароль, -> проверка, -> запуск...  


Название: Re: Авторизация пред запуском программы
Отправлено: mutineer от Сентябрь 28, 2012, 15:22
Твой кусок кода неправильный с точки зрения синтаксиса, прежде всего

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


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Сентябрь 28, 2012, 15:38
Твой кусок кода неправильный с точки зрения синтаксиса, прежде всего

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

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





Название: Re: Авторизация пред запуском программы
Отправлено: mutineer от Сентябрь 28, 2012, 15:39
Функция QComboBox::currentIndex() возвращает индекс текущего элемента (начиная с 0), или нет?

Ну ты же видишь по доке, что возвращает. А что за единицу ты ей передаешь?


Название: Re: Авторизация пред запуском программы
Отправлено: Bepec от Сентябрь 28, 2012, 15:41
Заполнение
Код:
QCombobox box;
box.addItem("LEO", "password")
Слот проверки
Код:
if (box.currentIndex()->itemData() == ui.lineEdit->text())
    qDebug() << "Ok";
else
    qDebug() << "NoOk";


Название: Re: Авторизация пред запуском программы
Отправлено: mutineer от Сентябрь 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())


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Сентябрь 28, 2012, 16:14
большое спасибо, все работает :)


Название: Re: Авторизация пред запуском программы
Отправлено: Bepec от Сентябрь 28, 2012, 16:48
Не спорю, но писал на коленке убитого зерга, нервно перезаряжая ногой двухствольный копьемёт.


Название: Re: Авторизация пред запуском программы
Отправлено: andrew.k от Сентябрь 29, 2012, 00:09
Зачем вообще пароль хранить в ГУЕ? О_О
Диалог должен просто предоставить возможно получить имя и пароль, а дальше это должно быть передано в некий модуль аутентификации, который должен вернуть успех или неудачу.

Что ж за мания такая в гуй лепить логику?


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

Что ж за мания такая в гуй лепить логику?

по сути в диалоге и происходит авторизация, каждый пользователь знает свой пароль, через который и работает дальше с программой, если вводит его верно. Если пользователь не знает своего пароля, то не войдет, правда свой пароль он изменить не может,  простой но впринципе работающий вариант, неужели такой вариант не имеет права на жизнь?)


Название: Re: Авторизация пред запуском программы
Отправлено: andrew.k от Октябрь 01, 2012, 10:06
Что ж за мания такая в гуй лепить логику?

по сути в диалоге и происходит авторизация, каждый пользователь знает свой пароль, через который и работает дальше с программой, если вводит его верно. Если пользователь не знает своего пароля, то не войдет, правда свой пароль он изменить не может,  простой но впринципе работающий вариант, неужели такой вариант не имеет права на жизнь?)
нет


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Октябрь 01, 2012, 10:57
Что ж за мания такая в гуй лепить логику?

по сути в диалоге и происходит авторизация, каждый пользователь знает свой пароль, через который и работает дальше с программой, если вводит его верно. Если пользователь не знает своего пароля, то не войдет, правда свой пароль он изменить не может,  простой но впринципе работающий вариант, неужели такой вариант не имеет права на жизнь?)
нет

почему нельзя?


Название: Re: Авторизация пред запуском программы
Отправлено: Igors от Октябрь 01, 2012, 11:08
почему нельзя?
Не то чтобы "нельзя", просто явно плохо. Очень скоро Вам придется опять суетиться с паролями - ну хотя бы добавлять новых юзверей.


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Октябрь 01, 2012, 12:32
почему нельзя?
Не то чтобы "нельзя", просто явно плохо. Очень скоро Вам придется опять суетиться с паролями - ну хотя бы добавлять новых юзверей.

в этом согласен, но не думаю что это будет частая необходимость, в процессе использования будет видно все, если будет необходимость вернусь к варианту окна с добавлением пользователей напрямую, пока что нету времени особо с этим заниматься, как видите я далеко не профессионал в этом деле и были проблемы с созданием такого варианта, поэтому с совершенствованием повременю...


Название: Re: Авторизация пред запуском программы
Отправлено: andrew.k от Октябрь 01, 2012, 13:16
почему нельзя?
Не то чтобы "нельзя", просто явно плохо. Очень скоро Вам придется опять суетиться с паролями - ну хотя бы добавлять новых юзверей.

в этом согласен, но не думаю что это будет частая необходимость, в процессе использования будет видно все, если будет необходимость вернусь к варианту окна с добавлением пользователей напрямую, пока что нету времени особо с этим заниматься, как видите я далеко не профессионал в этом деле и были проблемы с созданием такого варианта, поэтому с совершенствованием повременю...
В подпись что ли себе поставить? Нравится мне эта фраза :)
"Если у вас нет времени сделать что-то правильно, где же вы возьмете время, чтобы это переделать?"


Название: Re: Авторизация пред запуском программы
Отправлено: Igors от Октябрь 01, 2012, 13:29
..если будет необходимость вернусь к варианту окна с добавлением пользователей напрямую, пока что нету времени особо с этим заниматься, как видите я далеко не профессионал в этом деле и были проблемы с созданием такого варианта, поэтому с совершенствованием повременю...
Это нормальные, разумные соображения, но "повременить" тоже надо уметь. Завести файл/класс (не смешивая его с UI кодом) и уже там (пока) заполнять напрямую, проверять авторизацию и.т.п. Сейчас это сделать легко, а вот когда UI разрастется - будет не очень  :)


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Октябрь 01, 2012, 14:17
..если будет необходимость вернусь к варианту окна с добавлением пользователей напрямую, пока что нету времени особо с этим заниматься, как видите я далеко не профессионал в этом деле и были проблемы с созданием такого варианта, поэтому с совершенствованием повременю...
Это нормальные, разумные соображения, но "повременить" тоже надо уметь. Завести файл/класс (не смешивая его с UI кодом) и уже там (пока) заполнять напрямую, проверять авторизацию и.т.п. Сейчас это сделать легко, а вот когда UI разрастется - будет не очень  :)

согласен, надо переделывать... :(


Название: Re: Авторизация пред запуском программы
Отправлено: LEO от Октябрь 01, 2012, 14:20
Цитировать
В подпись что ли себе поставить? Нравится мне эта фраза
"Если у вас нет времени сделать что-то правильно, где же вы возьмете время, чтобы это переделать?"

пока что куча дел, по мере занятости будет свободное время займусь вопросом, по - моему фраза вереса в подписи смотрится вне конкуренции)
 


Название: Re: Авторизация пред запуском программы
Отправлено: panAlexey от Октябрь 03, 2012, 17:38
QMap<Имя, пароль>
QMap<Имя, MD5Хешьпароля>
Именно так надо привыкать программить.


Название: Re: Авторизация пред запуском программы
Отправлено: panAlexey от Октябрь 03, 2012, 17:42
QMap<Имя, пароль>
QMap<Имя, MD5Хешьпароля>
Именно так надо привыкать программить.
и + использовать в таких случаях не стандартный QComboBox с выбором имени, а какую-нить хрень посложнее с фильтрацией по первым символам.
Ибо когда юзеров будет за сотню и поболее они по 5 минут себя искать будут в стандартном списке.


Название: Re: Авторизация пред запуском программы
Отправлено: Alex Custov от Октябрь 03, 2012, 17:50
и + использовать в таких случаях не стандартный QComboBox с выбором имени, а какую-нить хрень посложнее с фильтрацией по первым символам.

Эта хрень и есть editable qcombobox :)


Название: Re: Авторизация пред запуском программы
Отправлено: panAlexey от Октябрь 03, 2012, 18:48
и + использовать в таких случаях не стандартный QComboBox с выбором имени, а какую-нить хрень посложнее с фильтрацией по первым символам.
Эта хрень и есть editable qcombobox :)
Да, кое чего он умеет.