gpt4 book ai didi

Qt右键单击QPushButton

转载 作者:行者123 更新时间:2023-12-04 04:50:05 24 4
gpt4 key购买 nike

我正在使用Qt Creator为扫雷游戏创建GUI。
我怎么知道右键单击QpushButton?游戏中的标志。
换句话说,哪个信号用于右键单击?

最佳答案

使用 mousePressEvent 插槽上的过滤器创建自己的按钮。

qrightclickbutton.h

#ifndef QRIGHTCLICKBUTTON_H
#define QRIGHTCLICKBUTTON_H

#include <QPushButton>
#include <QMouseEvent>

class QRightClickButton : public QPushButton
{
Q_OBJECT

public:
explicit QRightClickButton(QWidget *parent = 0);

private slots:
void mousePressEvent(QMouseEvent *e);

signals:
void rightClicked();

public slots:

};

#endif // QRIGHTCLICKBUTTON_H

qrightclickbutton.cpp
#include "qrightclickbutton.h"

QRightClickButton::QRightClickButton(QWidget *parent) :
QPushButton(parent)
{
}

void QRightClickButton::mousePressEvent(QMouseEvent *e)
{
if(e->button()==Qt::RightButton)
emit rightClicked();
}

现在像这样连接
QRightClickButton *button = new QRightClickButton(this);
ui->gridLayout->addWidget(button);
connect(button, SIGNAL(rightClicked()), this, SLOT(onRightClicked()));

在MainWindow.cpp中创建一个插槽。
void MainWindow::onRightClicked()
{
qDebug() << "User right clicked me";
}

这个对我有用!

关于Qt右键单击QPushButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15658464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com