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();
}

 

posted @ 2023-03-07 14:25  麦田HH  阅读(1510)  评论(0编辑  收藏  举报