多かれ少なかれ均一な処理が必要ないくつかのコントロールを含む Qt ダイアログ ボックスがあります。それらへのポインターを配列に格納し、それらを列挙したいと思います。
Windows では、連続したコントロール ID をGetDlgItem(hDlg, IDC_BASEID + i)
ループで使用します。Cocoa では、シーケンシャル ビュー タグを使用するか、非表示のコンテナーに含めます。Qtの方法は何ですか?
ウィジェットの名前が似ている場合は、QObject::findChildren(QRegExp) でうまくいくかもしれません。
QList<QLineEdit*> lineEdits = dialog->findChildren<QLineEdit*>(QRegExp("lineEdit[0-9]+"));
foreach (QLineEdit* lineEdit, lineEdits) {
lineEdit->clear();
}
だまされた答えはこれを行う方法を教えてくれますが、おそらくすべきではありません
Qt の方法は、すべてのウィジェットに同じスロット (つまり、ハンドラー) を登録することです。次に、イベント ハンドラーでイベントのフィールドを使用して、どのウィジェットが起動したかを通知し、それへのポインターを取得します。