首先,我的英語很抱歉。如何在Qt中聲明動態插槽功能?
最近我正在開發一個支持插件的Qt項目。在我的程序中,我想加載插件,並在程序啓動時爲每個插件創建實例。然後我遇到了這個問題:當觸發實例時,如何知道哪一個被觸發? (的QAction的觸發()信號沒有參數)
首先,我考慮使用連接動態信號槽連接。但是這需要動態聲明插槽功能,以便每個實例都可以使用。我不知道如何實施。
然後我有另一個想法。我嘗試實施一個新的類MyAction,它繼承了QAction。當它被觸發時,我可以用必要的參數發出我自己的信號。這裏有一些代碼。
class MyAction: public QAction
{
public:
int ID;
MyAction();
MyAction(const QIcon & icon, const QString & text, QObject * parent, int id)
: QAction(icon, text, parent)
{ID = id;}
~MyAction();
signals:
void clicked(int id);
public slots:
void trigger(){qDebug() << "triggered!"; emit clicked(ID);}
};
但是,沒有「觸發」!在控制檯中。
我會感激任何建議!
這就是我需要激動的!非常感謝! – Paler