Qt的。如何处理双击事件

时间:2014-07-01 19:51:50

标签: c++ qt

我无法处理双击事件。我尝试使用以下代码

执行此操作
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected slots:
    void OnDc(const QModelIndex&);

private:
    Ui::MainWindow *ui;
};


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(this, SIGNAL(doubleClicked(const QModelIndex& )), this, SLOT(OnDc(const QModelIndex&)));
}

void MainWindow::OnDc(const QModelIndex&)
{
    ...
}

双击时OnDc没有调用。 我做错了什么?

1 个答案:

答案 0 :(得分:16)

您应该使用void QWidget::mouseDoubleClickEvent ( QMouseEvent * event ) [virtual protected]

您可以覆盖QMainWindow::mouseDoubleClickEvent

MainWindow::mouseDoubleClickEvent( QMouseEvent * e )
{
    if ( e->button() == Qt::LeftButton )
    {
        ...
    }        
}