0

各行verticalLayoutにボタンが付いた 3 つのラベルがあるとします。各ボタンをクリックするとイベント

button_clicked()
{

}

発射中です。このイベントはすべてのボタン用です。つまり、各ボタンをクリックすると、この関数が呼び出されます。今、私は各ボタンをクリックしたときに、そのボタンがその削除にあるのと同じ行が必要です。どうやってやるの?まず、どのボタンがクリックされたかを検出する一意の値でなければならず、次にその行を削除する必要がありますが、その方法は知っています。何か案が?

4

1 に答える 1

2

コメントで提供された追加データを使用して、再回答します。

すべてのボタンを同じスロットに接続し、sender()メソッドを使用して信号をトリガーしている人を特定できます。

void MyClass::button_clicked() {
    QAbstractButton* button = qobject_cast<QAbstractButton*>(sender());
    if ( !button ) {
        return; // not called from a button.
    }
    button->setText("Clicked");
}
于 2013-04-20T20:44:22.467 に答える