我目前正在尝试编写一个小应用程序来进行实验等等。我将所有内容都写在自己的文件中(Menu -> menu.cpp 等)。现在我想创建一个菜单操作,这有效,但与操作交互不起作用。这就是我到目前为止所做的:
菜单.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!");
}
菜单.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
但它没有打印出'hello world',我得到的唯一消息是:
QObject::connect: No such slot QObject::newFile() in ../来自 Scratch 编写的 UI 应用程序 C++/src/ui/menu.cpp:11
我能做些什么来解决这个问题?
~ 一月