いくつかのドックウィジェットを持つ Qt Designer を使用してフォームを作成しました。これらのドックウィジェットにはいくつかの子ウィジェットがあります。mainwindow.cpp で Dockwidget とこれらの子ウィジェットにアクセスするにはどうすればよいですか?
2 に答える
これらの種類のドキュメントを読むことを強くお勧めしますが、少し有利なスタートを切るために、QDockWidget は QObject を継承する QWidget を継承します。
https://doc.qt.io/qt-4.8/qobject.html#children
widget->children() は、単にこのウィジェットの子を教えてくれます。これは、直接アクセスするオブジェクトの名前をまだ知らない場合、またはそれらへの参照がない場合に必要になります。
アップデート
Qt Designer でオブジェクトを作成し、生成された setupUi(this) を MainWindow 内で実行すると、メンバーとして設定したすべてのウィジェットにアクセスできます。Qt Designer で名前が付けられたので、それらに直接アクセスできます。Qt を使い始めるための数多くのチュートリアルの 1 つをチェックしてください。以下は、ui ファイルを使用してメンバーにアクセスする方法を示すものです: http://sector.ynet.sk/qt4-tutorial/my-first-qt-gui-application.html
メインウィンドウからすべてのdockWidgetsのリストを取得することもできます
QList<QDockWidget *> dockWidgets = findChildren<QDockWidget *>();
ツールバーなどを取得する場合にも同様の手法が機能するため、リストを作成するときにリストを手動で保存する必要はありません。