• 10438阅读
  • 5回复

[提问]QListWidget鼠标事件问题 [复制链接]

上一主题 下一主题
离线xhybba
 

只看楼主 倒序阅读 楼主  发表于: 2011-04-24
voidListWidget::mousePressEvent(QMouseEvent*event)
{

    if(event->buttons()==Qt::LeftButton)
    {
        QListWidgetItem *currentItem=this->itemPressed(QListWidgetItem);
        QString Name=currentItem->data(Qt::UserRole).toString();
    }
}

在ListWidget重写QListWidget鼠标按下事件..为什么无法获取到当前按下Item .....

[ 此帖被xhybba在2011-04-25 00:06重新编辑 ]
离线ppdayz

只看该作者 1楼 发表于: 2011-04-25
QListWidgetItem *curItem =  itemAt(event->pos());
试试这个
离线anny

只看该作者 2楼 发表于: 2011-04-25
leftbutton是键盘事件吧~
离线ppdayz

只看该作者 3楼 发表于: 2011-04-25
回 2楼(anny) 的帖子
。。。键盘上的哪个键是LeftButton。。。。
  1.     enum MouseButton {
  2.         NoButton         = 0x00000000,
  3.         LeftButton       = 0x00000001,
  4.         RightButton      = 0x00000002,
  5.         MidButton        = 0x00000004,
  6.         XButton1         = 0x00000008,
  7.         XButton2         = 0x00000010,
  8.         MouseButtonMask  = 0x000000ff
  9.     };
离线anny

只看该作者 4楼 发表于: 2011-04-25
...................
离线duduqq

只看该作者 5楼 发表于: 2011-04-26
鼠标点中一项时,QListWidget会发出这信号的,可以用
void    currentItemChanged ( QListWidgetItem * current, QListWidgetItem * previous )
void    currentRowChanged ( int currentRow )
void    currentTextChanged ( const QString & currentText )
void    itemActivated ( QListWidgetItem * item )
void    itemChanged ( QListWidgetItem * item )
void    itemClicked ( QListWidgetItem * item )
void    itemDoubleClicked ( QListWidgetItem * item )
void    itemEntered ( QListWidgetItem * item )
void    itemPressed ( QListWidgetItem * item )
void    itemSelectionChanged ()
这些信号来取得当前点了哪一项,具体看文档
快速回复
限100 字节
 
上一个 下一个