我已经有了这个函数来检索点击的QPushButton
对象名称:
void MainWindow::clickedBtnInfo()
{
QPushButton *btnSender = qobject_cast<QPushButton*>(sender()); // retrieve the button you have clicked
QString *clickedBtnName = btnSender->objectName(); // retrive the object name from the clicked button
qDebug() << clickedBtnName;
}
我检查了这个website以实现rightClicked
信号。
但我想知道如何检索右键单击的QPushButton
对象名称。
谢谢。
编辑我如何实现rightClicked
信号:
void MainWindow::onRightClicked()
{
qDebug() << "User right clicked me";
}
void MainWindow::mousePressEvent(QMouseEvent *e)
{
if(e->button() == Qt::RightButton) {
emit rightClicked();
}
}
并像这样连接:
connect(this, SIGNAL(rightClicked()), this, SLOT(onRightClicked()));
很抱歉没有完全解释我的问题。顺便说一下,我对Qt很新,所以希望得到一些具体解释的答案。
非常感谢。
答案 0 :(得分:0)
您在问题中提供的链接是正确的。您需要延长QPushButton
和不 QMainWindow
!只需将https://stackoverflow.com/a/15658863/3767076中的来源复制到您的项目中(如果您需要两次点击,请查看下面的评论)。
之后,您可以使用QRightClickButton
代替QPushButton
。如果您使用设计器创建了UI,则可以右键单击ui中的按钮并将其设置为QRightClickButton
的占位符。