2012-04-18 51 views
0

我在主窗口创建新的CAD部件得到一个子控件内部数据得到我的网格:Qt的,从另一个子部件

glWidget->mesh(); 

我如何得到它在我的tableview.cc? ty

+1

我使用Qt使用PySide所以Python,我不能给你的C++代码,但princliples是相同的。子类tableview,带有一个自定义构造函数,它需要一个额外的参数,所以你可以在实例化tableview时传入网格。或者,将一个setMesh方法添加到tableview子类并以这种方式传入网格。 – 2012-04-18 14:06:30

回答

1

您可以使用QObjectfindChildren函数,并获取可以转换为给定类型的小部件的所有子项的列表。例如

QList<QTableView*> allTableViews = glWidget->findChildren<QTableView *>(); 
// Iterate in order to find the table view either by checking the name, the parent etc.... 

另一种方法是将一个西蒙建议,子类化和增加公共访问功能,你想从顶级部件到达的成员。

+0

因此,如果我理解正确:glWidget-> findChildren会给我列出所有glWidget的子项?我很困惑,因为我需要我的MainWindow()的孩子,如果我想让他们列出其中的glWidget。但为什么,我已经知道名称(glWidget)?当我看到孩子看不到他的“兄弟”数据?只需在父类的帮助下使用自定义构造函数?大n00b在这里... – pazduha 2012-04-18 14:44:05

+0

我是这样的: \t QList allmeshwidgets = parentWidget() - > findChildren (); \t MyMesh&mesh = allmeshwidgets.first() - > mesh(); 感谢您的帮助! – pazduha 2012-04-18 15:49:35