2016-05-24 8 views

答えて

3

QWidgetQObjectのでQObject::objectNameあなたは多少以下のようにfree関数を作成することにより、親ツリーを再帰的にすることができ、すべてのQWidgets

(これは未テストコードであることに注意)

QWidget* parentByName(QWidget* widget, QString name) 
{ 
    widget = parentWidget(); 
    if (widget && widget->objectName() != name) 
     return parentByName(widget, name); 
    return widget; 
} 

この意志に利用可能であるが継承されますあなたが探しているウィジェット、または見つからないイベントのnullptrを返します。

+0

この目的のために実装された関数はないと言っていいですか? –

+0

これは、[ドキュメント](http://doc.qt.io/qt-5/qwidget-members.html)で最もよく質問される質問です。「親」を検索し、 –

+0

が最初のスニペットで見つかったものを参照してください。再帰呼び出しの場合は 'return parent-> parentByName(name);'を意味しますか?そうでなければ、スタックオーバーフローするまで同じパラメータで同じ関数を呼び出しているだけです。 – user463035818

関連する問題