Qtでは、オブジェクト間の通信に信号とスロットが使用されています。これにより、開始するために必要な情報が提供されます。
特定のイベントが発生すると、信号が発信されます。Qtのウィジェットには多くの事前定義されたシグナルがありますが、ウィジェットをサブクラス化して独自のシグナルをウィジェットに追加することはいつでも可能です。スロットは、特定の信号に応答して呼び出される関数です。Qtのウィジェットには多くの事前定義されたスロットがありますが、興味のある信号を処理できるように、ウィジェットをサブクラス化し、独自のスロットを追加するのが一般的な方法です。
したがって、特定のケースでは、QPushButtonclicked()
信号を、必要なことを実行するカスタムスロットに接続する必要があります(テキストをテキストエリアに追加します)。
QPushButton * btn = new QPushButton("Button", this);
connect(btn, SIGNAL(clicked()), this, SLOT(onBtnClicked()));
そして、ヘッダーでスロットを宣言する必要があります。
private slots:
void onBtnClicked();
そしてそれを定義します:
void MySpecialWidget::onClick()
{
// Do what is to be done
}
すべてが正しく行われていれば、機能するはずです...それ以外の場合は、コンソールを見て、次のようなメッセージがあるかどうかを確認してください。
Object::connect: No such slot MySpecialWidget::onClick() in ...
また
Object::connect: No such signal ....
彼らはあなたに何が起こっているかについてのヒントを与えるはずです。
最後に、Qtの幅広い例を見てみることをお勧めします。