QT菜单点击事件和connect的三种使用方式
#include "mainwindow.h" #include <QMenuBar> #include <QMessageBox> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QMenuBar *qMenubar = this->menuBar(); QMenu *qMenu = qMenubar->addMenu("文件"); QAction *qAction = qMenu->addAction("新建"); qAction->setShortcut(QKeySequence::New); //connect(qAction,&QAction::triggered,this,&MainWindow::DealSlot); //无参函数的时候 直接&获取函数指针 //connect(qAction,SIGNAL(triggered()),this,SLOT(DealSlot())); //使用宏 void (QAction::*pTriggered)(bool) = &QAction::triggered; void (MainWindow::*pDealSlot)() = &MainWindow::DealSlot; connect(qAction,pTriggered,this,pDealSlot); //带参数的时候 使用函数指针 } MainWindow::~MainWindow() { } void MainWindow::DealSlot() { QMessageBox msgBox; msgBox.setText("The document has been modified."); msgBox.exec(); }