@AlexB_49
Студент

Как вызвать функцию после нажатия кнопки и вернуть результат (в Qt Creator)?

Я пробую написать простенький генератор паролей, где пользователь задает количество символов и генерируется один пароль. На форме есть кнопка "Сгенерировать", и при её нажатии программа считывает число символов, из которых будет состоять пароль. В функции void MainWindow::on_generate_clicked() я вызываю функцию генерации. Вот код:

void MainWindow::on_generate_clicked()
{

    int num = ui->charedit->value();

    GetRandomString(num);

    ui->password->setText(randomString);  ////  ВОТ ЗДЕСЬ ОШИБКА

    ui->password->show();  

}

QString GetRandomString(int num)
{
    const QString possible_characters {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"};

   QString randomString;

   for(int i=0; i<num; i++)
   {
       int index = rand() % possible_characters.length();
       QChar nextChar = possible_characters.at(index);
       randomString.append(nextChar);
   }

   return randomString;
}


И вот в функции void MainWindow::on_generate_clicked() после возвращения результата randomString компилятор говорит, что randomString это undeclared identifier. Я понимаю, что это какая-то глупая ошибка, но первый раз сталкиваюсь с Qt и разработкой оконных приложений, а до этого только под консоль писал.

Помогите исправить проблему, пожалуйста.
  • Вопрос задан
  • 431 просмотр
Решения вопроса 1
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
Логично. Попробуйте так:
QString randomString = GetRandomString(num);
ui->password->setText(randomString);

Или:
ui->password->setText(GetRandomString(num));
PS:Сейчас нечем проверить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы