【问题标题】:Qt. How to handle double click eventQt。如何处理双击事件
【发布时间】:2019-11-24 08:27:02
【问题描述】:

我无法处理双击事件。我尝试使用以下代码来做到这一点

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 没有调用。 我做错了什么?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

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

    您可以覆盖QMainWindow::mouseDoubleClickEvent

    void MainWindow::mouseDoubleClickEvent( QMouseEvent * e )
    {
        if ( e->button() == Qt::LeftButton )
        {
            ...
        }
    
        // You may have to call the parent's method for other cases
        QMainWindow::mouseDoubleClickEvent( e );
    }
    

    【讨论】:

      猜你喜欢
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      相关资源
      最近更新 更多