• 7996阅读
  • 0回复

【已解决】qlistwidgetitem右键菜单响应的问题 [复制链接]

上一主题 下一主题
离线tulanix
 

只看楼主 倒序阅读 楼主  发表于: 2008-10-19
— 本帖被 XChinux 执行加亮操作(2008-11-02) —
为什么给qlistwidget添加右键菜单后,在任意一个item上点击右键选择某项会有连续三次相应呢?
代码如下:
#include "listwidget.h"
#include <QMessageBox>
#include <QAction>
#include <QMenu>
#include <QContextMenuEvent>
#include "propertydialog.h"
#include <stdio.h>

ListWidget::ListWidget(QWidget *parent)
{
    setViewMode(QListView::IconMode);
    setIconSize(QSize(64,64));
    propertyAction = new QAction(tr("Property"),this);
    setContextMenuPolicy(Qt::CustomContextMenu);
    connect(this,SIGNAL(customContextMenuRequested( const QPoint &)),
        this, SLOT(popupMenu(const QPoint &)));
    }

void ListWidget::popupMenu(const QPoint &pos)
{
    QMenu contextMenu(this);
    contextMenu.addAction(propertyAction);
    currentItem = this->itemAt( pos );
    if(currentItem == 0)
        return;
    contextMenu.exec(this->mapToGlobal(pos));
    connect(propertyAction,SIGNAL(triggered()),this,SLOT(showProperty()));
    }
void ListWidget::showProperty()
{
    //char *deviceName = currentItem->text().toLatin1().data();
    QMessageBox::information(this,"debug",currentItem->text(),QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
}
我在响应函数showproperty()里添加了个qmessagebox,但是一旦触发事件,第一次不弹dialog,第二次弹一次,第三次弹2次……,这是为什么?忘各位大大给予解答,谢谢

解决了,原来是第二个connect函数写错地方了
[ 此贴被tulanix在2008-10-19 15:53重新编辑 ]
快速回复
限100 字节
 
上一个 下一个