con*_*Kid 8 c++ inheritance qt4 signals-slots
在Qt程序中,我有一个QWidget类,它是另一个声明的类的超类:
class Renderer : public QGLWidget
{
Q_OBJECT
....
}
class A : public Renderer
{ .... }
Run Code Online (Sandbox Code Playgroud)
现在我有一个不存在的A类插槽Renderer,但是当我尝试运行该程序时,它无法连接到A类:
Object::connect: <sender name: 'push_button'>
Object::connect: <receiver name: 'A'>
Object::connect: No such slot Renderer::loadDialog() in <file path>
Run Code Online (Sandbox Code Playgroud)
为什么要尝试连接到渲染器而不是A?我应该在Renderer中有一个同名的插槽吗?
谢谢
编辑:
这是A中插槽的声明:
public slots:
void loadDialog();
Run Code Online (Sandbox Code Playgroud)
至于连接,我主要依赖于Qt Creator,但这是ui_windows.h文件中的内容:
QObject::connect(pushButton, SIGNAL(clicked()), A, SLOT(loadDialog()));
Run Code Online (Sandbox Code Playgroud)
希望有点清楚:)
mPo*_*opp 13
你能显示连接信号和插槽的代码吗?也许在A类中查看插槽声明也会有所帮助.
编辑:
尝试在子类A中添加Q_OBJECT宏.另一件事可能是插槽不是虚拟的(但根据我读到的内容不应该有所不同).
这些只是猜测,你发布的代码看起来对我来说没问题.我没有在该计算机上使用Qt,所以我无法尝试:(.
| 归档时间: |
|
| 查看次数: |
5806 次 |
| 最近记录: |