Слоты Qt и наследование: почему моя программа пытается подключиться к родительскому классу, а не к дочернему классу?

В программе Qt у меня есть класс QWidget , который является суперклассом другого класса, объявленного так:

class Renderer : public QGLWidget
{
    Q_OBJECT
    ....
}

class A : public Renderer
{ .... }

Теперь у меня есть слот для класса A, которого нет в Renderer , но когда я пытаюсь запустить программу, она не может установить соединение с классом A:

Object::connect: <sender name: 'push_button'>
Object::connect: <receiver name: 'A'>
Object::connect: No such slot Renderer::loadDialog() in <file path>

Почему он пытается подключиться к Renderer, а не к A? Должен ли я иметь слот в Renderer с тем же именем?

Спасибо

edit:

вот объявление слота в A:

public slots:
    void loadDialog();

, а что касается соединений, я полагаюсь на Qt В основном создатель, но вот что было в файле ui_windows.h:

QObject::connect(pushButton, SIGNAL(clicked()), A, SLOT(loadDialog()));

Надеюсь, это немного проясняет ситуацию :)

8
задан RAM 27 July 2018 в 11:15
поделиться