Я пытаюсь создать иерархию классов команд. В основном каждая команда будет привязана к QAction. Как только действие будет запущено, он вызовет виртуальный метод., соединяющий QAction с виртуальным слотом?
Вот код:
class Command : QObject
{
Q_OBJECT
public:
Command(QWidget *parent);
public slots:
virtual void execute();
protected:
QAction *commandAct;
};
Command::Command(QWidget *parent)
{
commandAct = new QAction(parent);
parent->addAction(commandAct);
connect(commandAct,SIGNAL(triggered()),this,SLOT(execute()));
}
QAction *Command::getAction()
{
return commandAct;
}
Теперь, если я получить класс и переопределить метод выполнения, он будет называться, как это должно быть?
Мне нужно это для работы на кросс-платформе.
подходит ли он для Qt 4.8? – Mogi
@Mogi да, это касается всех версий Qt. API и внутренняя реализация для соединений, возможно, изменились с годами, но не факт, что выполнение слота - это просто вызов метода этого метода. –