1

Jasmin Blanchettesの本の第2章に従っています

C++-GUI-Programming-with-Qt-4-1st-ed.pdf

QtでMS VS 2008を使用してダイアログGoToCellDialogをセットアップしようとしています。

この例はコンパイルされ、ダイアログが表示されますが、テキストの変更時にハンドラー メソッド on_lineEdit_textChanged() に入ることができません。それを証明するために、次の行をスロット メソッドに追加しました。

label->setText(tr("Changed :"));

ラベルの視覚的な変更を強制します。

.ui ファイルの要素

<connections/>

空です。どうしてか分かりません。

この行をコンストラクターに追加することにしました。

connect(lineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(on_lineEdit_textChanged()));

しかし、それは何も変わりません。

IDE を使用してコードを生成しましたが、最初に gotocelldialog が小文字で生成されました。これで、すべての名前が camelCase になり、コードがコンパイルされます。しかし、おそらく私は何かを逃した。

4

1 に答える 1

4

接続が十分に確立されていることを確認するために、プログラムで使用する関数があります。

 inline void CHECKED_CONNECT( const QObject * sender, const char * signal,
             const QObject * receiver,  const char * method,
             Qt::ConnectionType type = Qt::AutoConnection )
{
  if(!QObject::connect(sender, signal, receiver, method, type))
   qt_assert_x(Q_FUNC_INFO, "CHECKED_CONNECT failed", __FILE__, __LINE__);
}

これは、アサーション エラーをスローし、接続が失敗するとすぐにプログラムを停止する、通常の接続のラッパーです。ソースコードを使用して作成した接続にのみ役立ちます。

于 2012-05-07T11:40:14.283 に答える