まあ、エラーはMenu引数として渡すことから来ています。あなたMenuはクラスだと言いますが、クラスはそれ自体の式ではありません。
testのインスタンスを呼び出す必要がMenuある場合(つまり、利用可能なスロットがない場合)、それMenu自体(おそらく a ) を含むウィジェットにスロットを作成し、そこに呼び出しを実装するだけです!QObjectQMenuQMainWindow
編集:例を追加します。
class MainWindow : public QMainWindow {
Q_OBJECT
// Usual declarations...
private slots:
void myCustomSlot();
};
ここで、コンストラクター内でメイン ウィンドウを作成しているとします。
MainWindow::MainWindow(...) {
// Some initialization code
QMenu *menu2 = new QMenu("Test");
menu2->addAction("Test", this, SLOT(myCustomSlot));
// Some more initialization code
}
// ...
void MainWindow::myCustomSlot() {
instanceOfMenu->test();
}
もちろん、そのクラスの外でメニューを作成する場合は、スロットをパブリックにする必要がありますが、それは別の問題です