Я создал форму с помощью Qt Designer, в котором есть несколько док-виджетов, у этих док-виджетов есть несколько дочерних виджетов. Как я могу получить доступ к док-виджету и этим дочерним виджетам в моем mainwindow.cpp?
Виджеты док-станции Qt Designer доступны для детей
Ответы (2)
Я настоятельно рекомендую прочитать документацию по таким вещам, но чтобы дать вам небольшое преимущество, QDockWidget наследуется от QWidget, который наследуется от QObject:
https://doc.qt.io/qt-4.8/qobject.html#children
widget->children() просто сообщит вам о дочерних элементах этого виджета. Это было бы необходимо, если бы вы еще не знали имена объектов, к которым нужно обращаться напрямую, или не имели к ним никакого отношения.
Обновить
Когда вы создаете объекты в Qt Designer и запускаете сгенерированный для вас setupUi(this) внутри вашего MainWindow, вы получаете доступ ко всем виджетам, которые вы установили как элементы. Вы можете обращаться к ним напрямую, как они были названы в Qt Designer. Пожалуйста, ознакомьтесь с одним из многочисленных руководств по началу работы с Qt. Вот один, который показывает вам, как использовать ваш файл пользовательского интерфейса и получать доступ к его членам: http://sector.ynet.sk/qt4-tutorial/my-first-qt-gui-application.html
Вы также можете получить список всех док-виджетов из главного окна с помощью
QList<QDockWidget *> dockWidgets = findChildren<QDockWidget *>();
Аналогичный метод работает для получения панелей инструментов и т. д., поэтому вам не нужно вручную сохранять список при их создании.