• QTableWidget右键菜单


    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private:
        Ui::MainWindow *ui;
        QAction *action;
        QMenu *menu;
    
        void actions();
    
    public slots:
        void contextMenuEvent(QContextMenuEvent *event); //右键默认槽
        void actionClick();
    };
    
    #endif // MAINWINDOW_H
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <qDebug>
    #include <QContextMenuEvent>
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        ui->tableWidget->setColumnCount(2);
        ui->tableWidget->setRowCount(2);
    
        //鼠标右键动作
        action = new QAction(this);
        actions();
        connect(action, SIGNAL(triggered(bool)), this, SLOT(actionClick())); //右键动作槽
    }
    
    //右键被按下
    void MainWindow::contextMenuEvent(QContextMenuEvent *event)
    {
        qDebug() << "contextMenuEvent here";
    
        QPoint point = event->pos(); //得到窗口坐标
        QTableWidgetItem *item = ui->tableWidget->itemAt(point);
        if(item != NULL)
        {
            qDebug() << "row" << item->row(); //当前行
    
            menu->clear(); //清除原有菜单
            menu->addAction(action);
            menu->addSeparator();
    
            //菜单出现的位置为当前鼠标的位置
            menu->exec(QCursor::pos());
            event->accept();
        }
    }
    
    //添加动作
    void MainWindow::actions()
    {
        menu = new QMenu(); //创建菜单项
        action->setText(QString("action"));
    }
    
    //右键动作被按下
    void MainWindow::actionClick()
    {
        qDebug() << "actionClick here";
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }

    1

  • 相关阅读:
    一个前端框架应该有的一些公共函数
    前端开发避免bug注意事项
    angular中iframe的ng-src属性
    jquery上传base64位图片
    [Luogu]P2302 loidc,跑起来
    情书
    SA学习笔记
    关于GCD的证明
    文本生成器(AC自动机 + DP)
    AC自动机--速成版
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709351.html
Copyright © 2020-2023  润新知