1

私のコードは非常に単純です:

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
    lineEdit = new QLineEdit();
    label = new QLabel("");
    connect(lineEdit, SIGNAL(textChanged(QString)), label, SLOT(setText(QString)));
    ui->setupUi(this);
}

私はそれをコンパイルしましたが、エラーや警告はありません。

しかし、私がそれを実行すると、UIは次のようになります。

ここに画像の説明を入力してください

なぜQLabelのデフォルトのテキストはTextLabel

4

2 に答える 2

1

Qt docs からいくつかのチュートリアルを読む必要があります。QtDesigner ui と手動のウィジェット作成を混在させています。ラベルのデフォルトのテキストは、ui ファイルから取得されます。また、ui ファイルを使用する場合、ラベルや行の編集を作成する必要はありません。uiクラスからそれらを直してください。したがって、ui ファイルを通常の状態に戻す場合は、次のようにすることができます。

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->lineEdit, SIGNAL(textChanged(QString)), ui->label, SLOT(setText(QString)));
}

また、ダブルクリックして、Qt Designer でラベルのテキストを変更します。

于 2012-09-07T14:55:47.327 に答える
0

それはあなたの両方だからです

 lineEdit = new QLineEdit();
 label = new QLabel("");

UIで作成したものとは異なります。2 つの新しいウィジェットを定義していますが、おそらく以前のものを参照する必要があります。

 ui->lineEdit->clear();
 ui->label->clear();
 connect(ui->line....
 //etc...
于 2012-09-07T14:57:16.777 に答える