Проблема в следующем...
Внутри своего класса создаю еще один класс. В нем необходимо создать QAction, который нужно связать со слотом внутри того же (вложенного) класса.
Компиляция проходит, но при появлении формы консоль пишет:
QObject::connect: No such slot QCanvasView::checkItemOrder()
QObject::connect: (sender name: 'unnamed')
QObject::connect: (recevier name: 'my_view')
В *.h:
C++ (Qt)
class MyClass : public QWidget
{
Q_OBJECT
public:
MyClass (QWidget * parent = 0, const char* name = 0);
...
...
...
private:
class MyView : public QCanvasView
{
public:
MyView (QWidget * parent, const char * name = 0, WFlags f = 0);
...
QAction * actMyAction;
...
public slots:
void checkItemOrder();
...
};
...
};
В *.cpp:
C++ (Qt)
MyClass::MyClass (QWidget * parent = 0, const char* name = 0)
: QWidget (parent, name)
{
...
my_view = new MyView (this, "my_view",0);
...
}
...
MyClass::MyView::MyView (QWidget * parent, const char * name = 0, WFlags f = 0)
: QCanvasView (parent, name)
{
...
actMyAction = new QAction ("action", 0, this);
actMyAction->setEnabled(true);
connect(actMyAction, SIGNAL(activated()), SLOT(checkItemOrder()));
...
}
void MyClass::MyView::checkItemOrder()
{
...
}
Как решить проблему? Переносить коннект на главный виджет проблематично...