В настоящее время я пытаюсь написать небольшое приложение для экспериментов и многое другое. Я пишу все в своем собственном файле (Меню -> menu.cpp и т. Д.). Теперь я хочу создать действие меню, это работает, но взаимодействие с действием doesnt. То, что я сделал до сих пор:Не удается подключить слоты из другого класса
menu.cpp
#include "menu.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
void Menu::setupMenu(QMainWindow *window) {
QMenuBar *mb = new QMenuBar();
QMenu *fileMenu = new QMenu("File");
QAction *newAct = new QAction("New...", window);
window->connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
fileMenu->addAction(newAct);
mb->addMenu(fileMenu);
window->setMenuBar(mb);
}
void Menu::newFile() {
printf("hello world!");
}
menu.h
#ifndef MENU_H
#define MENU_H
#include <QObject>
#include <QMainWindow>
#include <QWidget>
#include <QMenuBar>
class Menu : public QObject
{
public:
void setupMenu(QMainWindow *window);
private slots:
void newFile();
};
#endif // MENU_H
Но его не распечатав 'привет мир', единственное сообщение Я получаю:
QObject :: connect: нет такого слота QObject :: newFile() in ../from Scratch написанное приложение UI C++/src/ui/menu.cpp: 11
Что мне делать, чтобы исправить это?
~ Ян
Q_SLOTS? Q_OBJECT? – user3528438