まあ、エラーはMenu
引数として渡すことから来ています。あなたMenu
はクラスだと言いますが、クラスはそれ自体の式ではありません。
test
のインスタンスを呼び出す必要がMenu
ある場合(つまり、利用可能なスロットがない場合)、それMenu
自体(おそらく a ) を含むウィジェットにスロットを作成し、そこに呼び出しを実装するだけです!QObject
QMenu
QMainWindow
編集:例を追加します。
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();
}
もちろん、そのクラスの外でメニューを作成する場合は、スロットをパブリックにする必要がありますが、それは別の問題です