簡単な解決策は、私たちはmouseDoubleClickEventメソッドを上書きし、そしてあなたがウィジェットを描画するためにpaintEventを上書きする可能性が私たち自身のウィジェットを作成することです:
#ifndef DOUBLECLICKEDWIDGET_H
#define DOUBLECLICKEDWIDGET_H
#include <QWidget>
#include <QPainter>
class DoubleClickedWidget : public QWidget
{
Q_OBJECT
public:
explicit DoubleClickedWidget(QWidget *parent = nullptr):QWidget(parent){
setFixedSize(20, 20);
}
signals:
void doubleClicked();
protected:
void mouseDoubleClickEvent(QMouseEvent *){
emit doubleClicked();
}
void paintEvent(QPaintEvent *){
QPainter painter(this);
painter.fillRect(rect(), Qt::green);
}
};
#endif // DOUBLECLICKEDWIDGET_H
あなたはQtのデザイナーでそれを使用したい場合は、あなたのように促進することができますlink
に示されている。
、次に接続:
//new style
connect(ui->widget, &DoubleClickedWidget::doubleClicked, this, &MainWindow::onDoubleClicked);
//old style
connect(ui->widget, SIGNAL(doubleClicked), this, SLOT(onDoubleClicked));
以下linkの例があります。
'QPushButton'には' doubleClicked'のシグナルがありません(したがってエラーです)。実際、私はQTの中にはダブルクリックの処理がないと思うので(オペレーティングシステムを除いてダブルクリックに反応するアプリケーションは考えられません)。あなたは['QWidget :: mouseDoubleClickEvent'](http://doc.qt.io/qt-5/qwidget.html#mouseDoubleClickEvent)を見ることができますが、あなたはあなたの' clicked() 'にタイマーが必要かもしれないと思っています。ダブルクリックをキャプチャするには 'pressed()'と 'released()'を使います。これは純粋推測ですから答えはありません。 – Tas
ダブルクリックをサポートできる他のオブジェクトをご存知ですか?画像は多分または他の?ダブルクリックできる限り、ボタンを他のものに置き換えても構いません。 – GeneCode
視覚的にボタンや他のウィジェットのように見せたいですか?視覚的には – eyllanesc