Qt Designer 停靠小部件儿童访问
Posted
技术标签:
【中文标题】Qt Designer 停靠小部件儿童访问【英文标题】:Qt Designer dock widgets children acess 【发布时间】:2012-02-08 18:58:11 【问题描述】:我使用 Qt Designer 制作了一个表单,它有一些停靠小部件,这些停靠小部件有一些子小部件。如何访问我的 mainwindow.cpp 中的 dockwidget 和这些子小部件?
【问题讨论】:
【参考方案1】:我强烈建议您阅读有关此类内容的文档,但为了让您有个先机,QDockWidget 继承自 QWidget,而 QWidget 继承自 QObject:
https://doc.qt.io/qt-4.8/qobject.html#children
widget->children() 只会告诉你这个小部件的孩子。如果您还不知道要直接访问的对象的名称,或者没有对它们的引用,则需要这样做。
更新
当您在 Qt 设计器中创建对象并在 MainWindow 中运行为您生成的 setupUi(this) 时,您将可以访问您设置为成员的所有小部件。您可以直接访问它们,因为它们在 Qt Designer 中被命名。请查看有关 Qt 入门的众多教程之一。这是一个向您展示如何使用您的 ui 文件并从中访问成员的方法:http://sector.ynet.sk/qt4-tutorial/my-first-qt-gui-application.html
【讨论】:
我在问如何访问 docwidget 本身,然后访问它的孩子。 @Menopia - 我认为你投票给我是不公平的,因为你没有阅读文档,甚至没有任何关于 qt 的入门级信息。 真的。他没有像人们通常那样给你任何废话。他给了你一个简短的回答和很多写得很好的文档。 @xdsy - 没有问题。如果您认为它有帮助,您也可以接受答案【参考方案2】:您还可以从主窗口获取所有dockWidgets的列表
QList<QDockWidget *> dockWidgets = findChildren<QDockWidget *>();
类似的技术适用于获取工具栏等,因此您不必在创建列表时手动存储列表
【讨论】:
以上是关于Qt Designer 停靠小部件儿童访问的主要内容,如果未能解决你的问题,请参考以下文章