找回密码
 立即注册
收起左侧

跳出QTableWidget,去当前界面中的其他控件(pushbutton)

4
回复
6646
查看
[复制链接]
累计签到:5 天
连续签到:1 天
来源: 2018-1-12 10:28:14 显示全部楼层 |阅读模式
1Qter豆
我用的是这种方法
void record_list::keyPressEvent(QKeyEvent *e)
{
if(e->key()==Qt::Key_Left)
    {
     if(system("find lockconfig.ini")==0)
         {
         qDebug()<<"get";
        int row = table->currentItem()->row();
        qDebug()<<row;
        QSettings *configIniRead = new QSettings("lockconfig.ini", QSettings::IniFormat);
        if(configIniRead->contains(table->item(row,3)->text())==true)//判断该键值是否存在
                {
                  lock_button->setText(tr("       解锁       "));
                 }
        else lock_button->setText(tr("       锁定       "));
        delete configIniRead;
          }
    lock_button->setFocus();
        }
if(e->key()==Qt::Key_Right)
    {
    return_button->setFocus();
    }
}

会出现焦点在item上移动到边上才能才能从table中出来,
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

恭喜使用过滤器解决。你的1个Qt豆不要浪费了,给我吧。
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2018-1-12 10:28:15 显示全部楼层
houyongnan 发表于 2018-1-12 14:57
已经使用给表格添加过滤器的方式解决

恭喜使用过滤器解决。你的1个Qt豆不要浪费了,给我吧。
回复

使用道具 举报

累计签到:5 天
连续签到:1 天
2018-1-12 10:30:22 显示全部楼层
使用这种方法捕获不到事件
void record_list::keyPressEvent(QKeyEvent *e)
{
    qDebug()<<"press key";
    if(e->key()==Qt::Key_F)
        {
        if(system("find lockconfig.ini")==0)
            {
            qDebug()<<"get";
           int row = table->currentItem()->row();
           qDebug()<<row;
           QSettings *configIniRead = new QSettings("lockconfig.ini", QSettings::IniFormat);
           if(configIniRead->contains(table->item(row,3)->text())==true)//判断该键值是否存在
                   {
                     lock_button->setText(tr("       解锁       "));
                    }
           else lock_button->setText(tr("       锁定       "));
           delete configIniRead;
             }
       lock_button->setFocus();
       qDebug()<<"F";
         }
    if(e->key()==Qt::Key_H)
        {
         return_button->setFocus();
         qDebug()<<"H";
        }
    if(e->key()==Qt::Key_T)
        {
            this->focusNextPrevChild(false);
          qDebug()<<"T";
         }
    if(e->key()==Qt::Key_G)
            {
            this->focusNextPrevChild(true);
           qDebug()<<"G";
            }
}
回复

使用道具 举报

累计签到:5 天
连续签到:1 天
2018-1-12 14:57:39 显示全部楼层
已经使用给表格添加过滤器的方式解决
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2018-1-24 20:43:49 显示全部楼层

你好!我想请问一下怎么发帖?谢谢你啦!找了好半天了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了