在QT程序,我有一個QWidget類是另一個類的父類的這樣:QT插槽和繼承:爲什麼我的程序試圖連接父代而不是子類?
class Renderer : public QGLWidget
{
Q_OBJECT
....
}
class A : public Renderer
{ .... }
現在我有A類插槽是不存在的渲染器,但是當我嘗試運行該程序未能連接到A類:
Object::connect: <sender name: 'push_button'>
Object::connect: <receiver name: 'A'>
Object::connect: No such slot Renderer::loadDialog() in <file path>
爲什麼它試圖連接到Renderer而不是A?我應該在同名的渲染器中有一個插槽嗎?
感謝
編輯:
這裏的插槽A中的聲明:
public slots:
void loadDialog();
,併爲連接,我依靠Qt Creator的居多,但這裏是什麼在ui_windows.h文件中:
QObject::connect(pushButton, SIGNAL(clicked()), A, SLOT(loadDialog()));
希望清理一下東西:)
加在編輯之上。 – confusedKid 2010-12-01 07:57:50
每當你想新的信號/插槽申報你的子類,你必須使用Q_OBJECT宏 – 2010-12-06 09:00:07