打开mainwindow.h头文件添加代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
//添加下面的代码
private slots:
void onaction_new_file();
private:
Ui::MainWindow *ui;
};
打开mainwindow.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMenu"
#include "QMenuBar"
#include "QAction"
#include "QtDebug"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
QMenuBar *menubar=new QMenuBar;
QMenu *menu=new QMenu;
QAction *action_new_file=new QAction();
menu->setTitle(tr("File"));
//this->menuBar()的作用是跟mainwindow相关联让其作为父级,不然不显示。
//menubar=this->menuBar();
setMenuBar(menubar);
//addmenu()将菜单追加到菜单栏。
menubar->addMenu(menu);
action_new_file->setText(tr("new file"));
menu->setToolTipDuration(2000);
menu->setToolTipsVisible(true);
action_new_file->setToolTip(tr("C++ create new file action"));
//把具体操作添加到菜单中
menu->addAction(action_new_file);
//action绑定事件
//action_new_file是所要绑定的对象
//SIGNAL(triggered())事件触发
//SLOT(onaction_new_file())绑定响应的函数
connect(action_new_file,SIGNAL(triggered()),this,SLOT(onaction_new_file()));
ui->setupUi(this);
}
void MainWindow::onaction_new_file(){
qDebug("ads");
}
indow::~MainWindow()
{
delete ui;
}
点击测试
事件onaction_new_file()响应