2016-05-02 14 views
0

今後の使用のために、ユーザーのためにテキスト入力をしようとしています。このために、私はQInputDialogを使用:Qt - setText()crahsesプログラム

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); 
} 

これはラインtextLabel->setText(text);で私のプログラムをcrahses。私がコメントアウトすると、それはクラッシュしませんが、text変数は空のままです。私は何が欠けていますか? ありがとうございました!

+0

textLabelはnullptrですか? – CppChris

+0

"ui-> textLabel-> setText(text);" –

+0

私はそれを 'QLabel * textLabel;'として.hファイルに定義しました。以前は使われていませんでした。私はそれがそうだと思う。それはすべきでしょうか? –

答えて

0

まず、textLabelを初期化するか、既存のQLabelへの参照を与える必要があります。

あなたはこのようにそれを初期化することができます。

textLabel= new QLabel('some text'); 

はまた、QLabelコンストラクタの詳細については、QLabelのマニュアルを参照してください。