0

多かれ少なかれ均一な処理が必要ないくつかのコントロールを含む Qt ダイアログ ボックスがあります。それらへのポインターを配列に格納し、それらを列挙したいと思います。

Windows では、連続したコントロール ID をGetDlgItem(hDlg, IDC_BASEID + i)ループで使用します。Cocoa では、シーケンシャル ビュー タグを使用するか、非表示のコンテナーに含めます。Qtの方法は何ですか?

4

2 に答える 2

0

ウィジェットの名前が似ている場合は、QObject::findChildren(QRegExp) でうまくいくかもしれません。

QList<QLineEdit*> lineEdits = dialog->findChildren<QLineEdit*>(QRegExp("lineEdit[0-9]+"));
foreach (QLineEdit* lineEdit, lineEdits) {
    lineEdit->clear();
}
于 2010-11-09T23:16:05.037 に答える
0

だまされた答えはこれを行う方法を教えてくれますが、おそらくすべきではありません

Qt の方法は、すべてのウィジェットに同じスロット (つまり、ハンドラー) を登録することです。次に、イベント ハンドラーでイベントのフィールドを使用して、どのウィジェットが起動したかを通知し、それへのポインターを取得します。

于 2010-11-09T21:53:43.707 に答える