2016-05-02 3 views
0

Я пытаюсь получить текстовый ввод для пользователя для дальнейшего использования. Для этого я использовал QInputDialog:Qt - setText() crahses program

bool ok; 
QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"), 
            tr("Your input:"), QLineEdit::Normal, 
            QDir::home().dirName(), &ok); 
if (ok && !text.isEmpty()) { 
    textLabel->setText(text); 
} 

Это crahses мою программу на линии textLabel->setText(text);. Если я прокомментирую это, это не сбой, но переменная text останется пустой. Что мне не хватает? Спасибо!

+0

Является ли textLabel nullptr? – CppChris

+0

Как насчет "ui-> textLabel-> setText (текст);" –

+0

Я определил его в файле .h как 'QLabel * textLabel;' и ранее не использовался. Наверное, это так. Должно быть? –

ответ

0

Во-первых, вы должны инициализировать textLabel или дать ссылку на существующий QLabel.

Вы можете инициализировать его следующим образом:

textLabel= new QLabel('some text'); 

Также см QLabel документации для получения дополнительной информации о QLabel конструкторах.

Смежные вопросы