• 6764阅读
  • 2回复

[公告]为什么不响应鼠标事件 [复制链接]

上一主题 下一主题
离线zhanghangff
 
只看楼主 倒序阅读 楼主  发表于: 2011-06-29

tableWidget=new QTableWidget(this);
    tableWidget->setRowCount(size);
    tableWidget->setColumnCount(3);
    tableWidget->setGeometry(QRect(60,40,441,251));
    tableWidget->setHorizontalHeaderLabels(QStringList()<<tr("number")<<tr("qq")<<tr("address"));
    for(int i=0;i<size;i++)
    {QTableWidgetItem *newItem=new QTableWidgetItem;
     newItem->setText(MyData.name);
     tableWidget->setVerticalHeaderItem(i,newItem);}
   // tableWidget->setVerticalHeaderLabels(QStringList()<<tr("zhang1")<<("zhang2")<<tr("zhang3"));

        for(int i=0;i<size;i++){
            for(int j=0;j<3;j++){
           // QTableWidgetItem *newIetm=tableWidget->item(i,j);
             QTableWidgetItem *newItem=new QTableWidgetItem;
             tableWidget->setItem(i,j,newItem);
            // newIetmij=tableWidget->item(i,j);
             if(j==0)
             {newItem->setText(MyData.number);}else if(j==1)
             {newItem->setText(MyData.qq);}else if(j==2)
             {newItem->setText(MyData.address);}
        }
    }
   // QTableWidgetItem *newItem=new QTableWidgetItem;
   // newIetm=tableWidget->item(1,1);
  //  tableWidget->setItem(0,0,newItem);
   // newItem->setText("fff");
       tableWidget->installEventFilter(this);
        tableWidget->setFocus();



bool MainWindow::eventFilter(QObject *target, QEvent *event)
{
if(target==tableWidget)
{
//  QMessageBox::information(this,tr("qwe"),tr("%1").arg("button press!"));
  if (event->type()==QEvent::MouseButtonPress)
  {       //QMouseEvent *mouseEvent=static_cast<QMouseEvent*>(event);
   QMessageBox::information(this,tr("qwe"),tr("%1").arg("button press!"));
   return true;
  }
}else if(event->type()==QEvent::MouseButtonRelease)
{    qDebug("f44ff");
            return QMainWindow::eventFilter(target,event);}
}
为什么点击鼠标以后不响应?求各位大虾帮忙!
离线eadywen

只看该作者 1楼 发表于: 2011-06-30
tableWidget->installEventFilter(this);在这后面加一句试试
this->installEventFilter(this);
离线13710229930
只看该作者 2楼 发表于: 2013-09-24
被监视的对象弄错了,将
tableWidget->installEventFilter(this); 换成
tableWidget->viewport()->installEventFilter(this);
快速回复
限100 字节
 
上一个 下一个