查看完整版本: [-- QTreeView怎么响应键盘事假 --]

QTCN开发网 -> Qt基础编程 -> QTreeView怎么响应键盘事假 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

gaoshiqing 2017-12-15 08:53

QTreeView怎么响应键盘事假

一开始用重载keyPressEvent的方法,发现根本不能进入该函数,网上有说QTreeView可能根本就不响应这个事件,所以就用了事件过滤器,事件过滤器能进入,但是再判断时不能判断是键盘事件,请问哪里有问题或者告诉我怎么才能让它响应键盘事件,代码如下:
  1. bool TreeModelInfo::eventFilter(QObject *watched, QEvent *event)
    {
         if(watched == this)
         {
              if (event->type() == QEvent::KeyPress)
       {
                   QKeyEvent *e = static_cast<QKeyEvent*>(event);
                   if (e->key() == Qt::Key_Delete)
                   {
         QModelIndex currentIndex = this->currentIndex();
         QStandardItem* item = model->itemFromIndex(currentIndex);
         QString strGUID = item->data(Qt::UserRole).toString();
                        QUuid uid = QUuid(strGUID);
                        if(!uid.isNull())
         {
                             RemoveVideo(uid);
                             return true;
                        }
                   }
              }
         }
          return false;
    }


笑颜 2017-12-15 09:13
你重写viewportEvent(QEvent *) ,或许会有惊喜


查看完整版本: [-- QTreeView怎么响应键盘事假 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled