从 child 调用 QtWidget parent 方法
Call QtWidget parent method from child
我正在尝试获取 parent 小部件的某些属性:SamplerModule
来自其 children:InstrumentSelector
。
从 InstrumentSelector
构造函数中,我 运行 parent->metaObject()->className()
给了我正确的名称 (SamplerModule)。所以我确定我在正确的地方调用我的 public 方法之一,例如 getT()
在我的 SamplerModule
[= 中定义为 public 方法32=] 和 cpp 文件。
但是,当我调用这个函数时,出现了这个错误:
\app\widgets\instrumentselector.cpp:23: erreur : 'class QWidget' has no member named 'getT'
msgBox.setText(parent->getT());
所以我认为这是 C++ 和 Qt 的基础知识,但我仍在学习。
有人有想法吗?
谢谢
没有看到代码,很难确定,但我的猜测是你已经将 "parent" 定义为 "QWidget *",所以编译器不知道它实际上是一个基数指向 SamplerModule 的指针。您需要将 "parent" 转换为 SamplerModule 指针,或者以这种方式声明它。是的,这是纯 C++;它与 Qt 无关。
我正在尝试获取 parent 小部件的某些属性:SamplerModule
来自其 children:InstrumentSelector
。
从 InstrumentSelector
构造函数中,我 运行 parent->metaObject()->className()
给了我正确的名称 (SamplerModule)。所以我确定我在正确的地方调用我的 public 方法之一,例如 getT()
在我的 SamplerModule
[= 中定义为 public 方法32=] 和 cpp 文件。
但是,当我调用这个函数时,出现了这个错误:
\app\widgets\instrumentselector.cpp:23: erreur : 'class QWidget' has no member named 'getT' msgBox.setText(parent->getT());
所以我认为这是 C++ 和 Qt 的基础知识,但我仍在学习。
有人有想法吗?
谢谢
没有看到代码,很难确定,但我的猜测是你已经将 "parent" 定义为 "QWidget *",所以编译器不知道它实际上是一个基数指向 SamplerModule 的指针。您需要将 "parent" 转换为 SamplerModule 指针,或者以这种方式声明它。是的,这是纯 C++;它与 Qt 无关。