QTableWidget响应按键向上向下信号,父窗口获取按键信号并响应

本文介绍如何通过Qt的事件过滤器在QTableWidget中处理按键事件。当QTableWidget自身响应向上、向下按键时,同时使父窗口能够捕获并处理这些按键信号。通过为QTableWidget安装事件过滤器,并重写eventFilter函数,可以成功监听到键盘上下键的按下,进而执行相应的操作。
摘要由CSDN通过智能技术生成

QTableWidget自带按键响应,当按键向上向下时可以看到QTableWidget选中行发生变化。

现在的问题是,QTableWidget已处理按键时间,父窗口也需要处理这个按键信号但是却接收不到按键信号。

解决方法如下:

使用Qt的事件过滤器,捕获QTableWidget对象所发生的事件。
1、为QTableWidget父窗口安装事件过滤器

tablewidget->installEventFilter(this);

2、父窗口重写bool eventFilter(QObject *obj, QEvent *e) 函数

bool MainWidget::eventFilter(QObject *obj, QEvent *e)
{

    if (obj == tablewidget)
    {
        if (event->type() == QEvent::KeyPress)
        {
            QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
            if (keyEvent->key() == Qt::Key_Up)
            {
                MoveItem(false);
                return true;
            }
            else if (keyEvent->key() == Qt::Key_Down)
            {
                MoveItem(true);
      

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值