- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我能够通过子类化 QTableWidget 来模拟右键单击事件:
头文件:
#ifndef QRIGHCLICKTABLE_H
#define QRIGHCLICKTABLE_H
#include <QTableWidget>
#include <QMouseEvent>
class QRightClickTable : public QTableWidget
{
Q_OBJECT
public:
explicit QRightClickTable(QWidget *parent = 0);
private slots:
void mousePressEvent(QMouseEvent *e);
signals:
void rightClicked();
public slots:
};
#endif // QRIGHCLICKTABLE_H
cpp文件
QRightClickTable::QRightClickTable(QWidget *parent) :
QPushButton(parent)
{
}
void QRightClickTable::mousePressEvent(QMouseEvent *e)
{
if(e->button()==Qt::RightButton)
emit rightClicked();
}
QRightClickTable *button = new QRightClickTable(this);
ui->gridLayout->addWidget(button);
connect(button, SIGNAL(rightClicked()), this, SLOT(onRightClicked()));
void MainWindow::onRightClicked()
{
qDebug() << "User right clicked me";
}
现在,右键单击可以正常工作,但 QTableWidget 还存在其他问题:所有其他鼠标事件,例如左键单击以选择单元格,不再起作用。你能帮帮我吗?
最佳答案
softwareTableWidget = new QTableWidget();
softwareTableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
QObject::connect(softwareTableWidget, &QTableWidget::customContextMenuRequested, this, [this](){
QMenu *menu = new QMenu;
auto a = menu->addAction("Test");
QObject::connect(a, &QAction::triggered, this, [this, menu, a](){
qDebug() << "Test";
a->deleteLater();
menu->deleteLater();
});
menu->exec(QCursor::pos());
menu->clear();
});
如果你只想在项目点击时显示上下文菜单,那么添加这个:
if (softwareTableWidget->itemAt(softwareTableWidget->mapFromGlobal(QCursor::pos())))
{
QMenu *menu = new QMenu;
auto a = menu->addAction("Test");
QObject::connect(a, &QAction::triggered, this, [this, menu, a](){
qDebug() << "Test";
a->deleteLater();
menu->deleteLater();
});
menu->exec(QCursor::pos());
menu->clear();
}
当然你可以做任何你想做的而不是显示上下文菜单
关于c++ - QTableWidget 右键单击事件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23974919/
我有点困惑。在 : http://delphi.about.com/od/objectpascalide/l/blvkc.htm 它说“Space”的正确键是#20。试过了,但行不通。但是,将其替换为
我有一个 input 的 type="submit" 并且我希望当我点击(右键或左键点击)它时这个元素周围没有蓝色边框。 我在下面的chrome浏览器中添加了OK模式和not OK模式的图片: OK模
我想在右键单击选项卡标题时显示上下文菜单条。 但是,我没有找到检测选项卡标题点击的方法。 有人知道如何做到这一点吗? 最佳答案 Private Sub tab1_MouseClick(sender A
我对编程还很陌生,正在尝试制作扫雷 GUI。游戏完美地右键单击 JToggleButton,在按钮上显示了一个代表炸弹的“B”,但是当我在鼠标监听器中用 setIcon() 替换 setText()
我正在尝试将一个按钮 float 到卡片的右侧。我希望它出现在右下角。 当我正确使用 float 时。它出现在父 div 之外,有没有办法正确定位它?
我正在使用 Struts2 标签和下面的代码使用 JS 计算并检查/验证在文本字段中输入的值。 它还会更新在 textfield 中输入的总数列表,这些由 onblur 处理和 onkeydown事件
我是一名优秀的程序员,十分优秀!