QTableWidget鼠标右键事件实现

这篇具有很好参考价值的文章主要介绍了QTableWidget鼠标右键事件实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近开发项目用到QTableWidget,基于MainWindow的基础上,当想要实现鼠标右键点击的时候,重写QMousePressEvent发现,右键事件没有响应,折腾了好久,后来通过QT帮助文档对QTableWidget的说明发现,是父窗口的鼠标事件被QTableWidget接管了,需要在QTableWidget中实现,第一种方式,在没有写tablewidget之前,重写一个类继承自QTableWidget,由于,我的tablewidget已经写完了,果断放弃,采用第二种方式实现,废话不多说,直接上代码:

首先设置QTableWidget的属性

ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);

其次,连接信号和槽,这里是实现了一个右键菜单:

connect(ui->tableWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(rightClickedSlot(QPoint)));

最后,实现槽函数:

void modifyNode::rightClickedSlot(QPoint pos)
{
    QTableWidgetItem* item = ui->tableWidget->itemAt(pos);
    if (NULL == item)
    {
        return ;
    }
    m_iRowClicked = item->row();
    qDebug() << "rightClickedSlot == " << m_iRowClicked;
    // 弹出右键菜单,
    QMenu *pMenu = new QMenu(this);
    pMenu->setContextMenuPolicy(Qt::CustomContextMenu);
    QAction *pModifyTask = new QAction(QString(u8"修改"),this);// 修改
    QAction *pDelTask = new QAction(QString(u8"删除"),this); // 删除

    pMenu->addAction(pModifyTask);
    pMenu->addAction(pDelTask);
    // 连接信号和槽
    connect(pModifyTask,SIGNAL(triggered()),this,SLOT(modifyTaskSlot()));
    connect(pDelTask,SIGNAL(triggered()),this,SLOT(DelTaskSlot()));

    // 右键菜单显示的地方
    pMenu->exec(QCursor::pos());

    delete pModifyTask;
    delete pDelTask;
    delete pMenu;
}

个人粗鄙见解,还请各路大神多多指点。文章来源地址https://www.toymoban.com/news/detail-657684.html

到了这里,关于QTableWidget鼠标右键事件实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Qt图形视图框架】自定义QGraphicsItem和QGraphicsView,实现鼠标(移动、缩放)及键盘事件、右键事件

    说明 在使用Qt的图形视图框架实现功能时,一般会在其基础上进行自定义功能实现。 如:滚轮对场景的缩放,鼠标拖动场景中的项,以及可以在场景中进行右键操作等。 示例 myitem 为自定义QGraphicsItem,实现了边框、重绘事件、鼠标悬停、按键、右键菜单等功能。 myitem.h myi

    2024年02月04日
    浏览(48)
  • vue+openlayers,初始化openlayers地图,实现鼠标移入、点击、右键等事件

    主要功能:初始化openlayers地图,实现鼠标移入、点击、右键等事件,以及获取当前图标的feature,将当前图标信息以弹框方式进行展示;地图上展示拾取到的经纬度 前端使用的是vue技术栈 步骤一:将地图的公用配置项单独提出成一个js文件,方便打包后进行修改,代码如下

    2024年02月11日
    浏览(38)
  • QTableWidget动态储存数据

            由于QTable性能低,显示超过一定的数据量会造成卡顿,所以采用动态显示的方法将存储数据与显示数据分开。         为什么不用view/model?         因为我已经在项目里写好了tablewidget,而且没用过view/model,老懒了,后面在学怎么使用。现在只需要储存和显

    2024年02月12日
    浏览(37)
  • QTablewidget 常规操作

    一、表头操作 二、插入操作 三、单选模式下设置多行选中 四、获取选中行 五、常用QSS

    2024年02月07日
    浏览(37)
  • Qtablewidget隐藏行和列

    要隐藏Qtablewidget指定行和列,代码如下 // 隐藏列 ui-tableWidget-setColumnHidden(0, true); // 隐藏第1列 ui-tableWidget-setColumnHidden(1, true); // 隐藏第2列 // 隐藏行 ui-tableWidget-setRowHidden(0, true); // 隐藏第1行 ui-tableWidget-setRowHidden(1, true); // 隐藏第2行 // 显示列 ui-tableWidget-setColumnHidden(0, false); /

    2024年02月11日
    浏览(40)
  • 表格控件QTableWidget

    简介 QTableWidget 是 Qt 中的 表格 组件类。 在窗体上放置一个 QTableWidget 组件后,可以在 Property Editor 里对其进行属性设置,双击这个组件,可以打开一个编辑器,对其 Colum、Row 和 Item 进行编辑。 行/列 第0列 第1列 第0行 ( 0 , 0 ) ( 0 , 1 ) 第1行 ( 1 , 0 ) ( 1 , 1 ) 界

    2024年02月11日
    浏览(35)
  • QTableWidget通过QSS美化

    外观 详见Github

    2024年02月13日
    浏览(38)
  • PyQt5中的QTablewidget

    环境 PyQt5 + VSCode 在VSCode的资源管理器中,右键选择 PYQT:New Form,打开Qt Designer 选择新建Dialog without Buttons,点击 创建 在左侧的Item Widgets中将 Table Widget拖入Dialog窗体中。 得到界面 将文件保存为tablewidget1.ui。 在VSCode中,右键点击文件tablewidget1.ui, 选Compile From, 得到Ui_tablewidg

    2024年04月27日
    浏览(26)
  • PyQt QTableWidget 表格控件的使用

    PyQT开发图形界面应用时,可用 QTableWidget 控件,以表格方式直观地显示二维表格形状的数据,如列表,数组、pandas DataFrame等。 如果你想用表格方式直接显示并操作数据库表时,选择 QTableView类更合适。 步骤如下: 生成QTableWidget对象 设置表头以及表格参数 构建 QTableWidgetIte

    2024年02月01日
    浏览(54)
  • QT-QTablewidget 设置选中某一行

    要在 QTableWidget 中设置选中的行,可以使用 setCurrentItem() 函数来设置当前的 QTableWidgetItem。你可以通过调用 QTableWidget 的 item() 函数获得指定行和列的 QTableWidgetItem,然后通过将其传递给 setCurrentItem() 函数来设置选中的行。 下面是一个示例代码,演示了如何设置 QTableWidget 中的选

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包