2

QTextEditウィジェットを管理するQMainWindowを親とするQTabWidgetがあります。

タブの1つでコンテンツがいつ変更されたか、どのタブで変更されたかを知りたいのですが。私は解決策をグーグルで検索しようとしてきましたが、コードの行が何度も変更され、クラスのアーキテクチャが変更されました。

私の最後の試みは:

QTextEdit* curr_text_edit = /*slots were used to get this pointer*/;
connect(curr_text_edit, SIGNAL(textChanged()), this, SLOT(marquerChangement()));

ただし、スロット「marquerChangement()」は呼び出されません。何か案は?

4

1 に答える 1

0

marquerChangement()が呼び出されていない場合、考えられる理由は2つだけです。1つは、curr_text_editで表されるQTextEditがシグナルを送信しないことです(つまり、QTextEditが間違っている可能性がありますか?)。

もう1つの可能性は、への呼び出しがconnect失敗したことです。この信号/スロット接続は、コンパイル時ではなく、実行時に行われます。ここでの失敗は通常、stdoutに出力されるだけで、プログラムは正常に進行します。アプリケーションの出力をチェックして、信号またはスロットが見つからないというメッセージが表示されるかどうかを確認します。

于 2012-10-01T01:00:10.257 に答える