问题标签 [qmouseevent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
23920 浏览

qt - 我可以在 QGraphicsItem 中获取鼠标事件吗?

我有子类化QGraphicsRectItem,它没有收到任何鼠标事件。我已经看到与此类似的其他问题说我需要启用鼠标跟踪,但setMouseTracking在 QWidget 中,并且 QGraphicsItem 似乎不是 QWidget。

我已经实施paint了,这很有效。在我的子类 QGraphicsView 中,我收到了鼠标事件。

文档似乎认为我应该重写 mousePressEvent 函数(例如),我应该开始获取事件。我是否将 mousePressEvent 转发到 QGraphicsView 的超类似乎没有任何区别。

0 投票
2 回答
11823 浏览

qt - 在 QGraphicsScene 上显示弹出菜单单击或右键单击

当用户右键单击场景的空白部分时,有没有办法显示弹出窗口?

我是 Qt 的新手,我尝试过插槽和子类化,但无济于事。

没有这样的插槽,并且分别:

“错误:'QMouseEvent' 尚未声明”

尝试实施onMouseRelease事件时。

0 投票
2 回答
462 浏览

qt - QT:使用 QMouseEvent 从代码中选择多个 QTableWidgetItem

这是我在stackoverflow上的第一个问题,但不是你第一次帮助我(我希望你能)。

首先,我必须提到我对 C++ 的经验并不丰富,尤其是在 QT 方面,这是我的问题所在。我在将 QMouseEvents 从代码发布(或发送)到 QTableWidget 时遇到问题。我想向 MultiSelect QTableWidget 发送多次点击,我希望,点击后的 QTableWidgetItems 会被选中。

为了重现这个问题,我创建了一个小样本。有一个按钮将“点击”发送到 QTableWidget(在我的真实应用中,这是由网络触发的)。单击按钮时,会执行两次“单击”(我在调试器中也看到了),但之后只选择了第一次单击的 TableWidgetItem。我不知道为什么第二个项目没有被选中。我希望你们中的某个人可以:-)。我真的很感谢你的帮助!

这里是示例代码:

QTableWidgetExample.h:

QTableWidgetExample.cpp:

编辑为最广泛的答案:

不幸的是,这是一个硬性要求。我将我的代码注入到另一个应用程序中,在那里我读取了其中的几个 QTableWidget 并通过 TCP 将它们发送到我的应用程序。到目前为止,这运作良好。现在我需要从我的应用程序中更改这些选择,这就是问题所在。我的首选选择是通过鼠标点击来完成。其背后的意图是它的行为就像用户在该应用程序中工作一样(但似乎并非如此)。但是,如果您有其他想法,我会尝试一下。也许有更好的东西,我还没有想到。

0 投票
1 回答
2449 浏览

qt - 可移动的 QRubberband 从一点到另一点

我在 QLabel 上画了一个 QRubberband。我可以使用 QSizeGrip 调整它的大小。现在我想使用 QMouseevents 将它从一个点移动到另一个点。有没有人可以帮助我。

这是我用于鼠标事件的子类部分。代码如下:

在这段代码中,我的问题是拖动后我没有得到确切的坐标

谢谢。

阿什什

0 投票
1 回答
631 浏览

qt - 使用拖放事件在 QTreewidget 中插入多个文件

我在 MAC OSx 上使用 Qt4.7 工作。我想使用拖放事件在 QTreewidget 中插入文件。我想一次添加多个文件。我正在使用这个:

使用它,我一次只能插入一个文件。有没有人可以帮助我解决这个问题?您的帮助将不胜感激。

谢谢,阿希什。

0 投票
0 回答
752 浏览

c++ - Qt - 将 QMouseEvent 传递给子wildgets

我已经对 QMouseEvents 进行了一些研究,但我坚持将 QMouseEvent 传递给子小部件。我有一个结构如下的程序:

MainWindow 是 DockWidget 等的父级... 我的主要目标是知道何时单击 MainWindow 并将此 QMouseEvent 传递给 WidgetTarget。

我阅读了有关 QMouseEvent 的文档,并看到了 QEvent 的有用函数 ignore() ,但它与我想要的相反。QMouseEvent 被传递给父级,所以如果我在 WidgetTarget 中单击,QMouseEvent 将被传递给 WidgetList。

那么有没有办法将 QMousseEvent 传递给子小部件而不是其父小部件?我看到了一些带有 Qt::WA_TransparentForMouseEvents 标志的技巧,但我不知道这是否是正确的方法

编辑: 我将使用 mousePressEvent(QMouseEvent *event) 在 WidgetTarget 中详细介绍工作。它基本上是为了做一个吸管。这是我想到的代码:

我阅读了您的有用评论,是的,我认为如果我在 MainWindow 上实现此代码会很容易,但吸管功能在 WidgetTarget 中,所以基本上我必须找到在 WidgetTarget 中激活吸管的方法,如果吸管请检查 MainWindow被激活,然后向 WidgetTarget 发送一个带有 QColor 的信号,例如?

此致

0 投票
1 回答
663 浏览

javascript - 当两个条件都为真时,一个 div 的 mouseleave 和另一个 div 的 mouseenter

有 4 个 div,如下所示

我想在 div11 上悬停时显示 div 21,在 div12 悬停时显示 dev22,就像菜单一样,它应该保持并可点击。如果我从 div11 移出,则 div21 必须隐藏,除非用户进入 div21。目前,如果我将指针从 div11 移向 div21,它就会隐藏起来。我希望它留下来。两者都必须像上面一样位于单独的 div 中。

我尝试使用 mouseenter 和 mouseleave,但它没有满足我的要求。请帮我解决一下这个。

提前致谢。 jsfiddle链接

0 投票
2 回答
9362 浏览

c++ - 如何在 Qt 中的 MouseReleaseEvent 中获取释放的按钮

MouseReleaseEvent(QMouseEvent *e)中,有没有一种方法可以在不使用新变量的情况下知道释放了哪个按钮?我的意思是在MousePressEvent(QMouseEvent *e)with 中e.buttons()。我e.buttons()在 releaseEvent 中尝试过它不起作用(这是合乎逻辑的)。

0 投票
0 回答
525 浏览

c++ - QMenu 未显示但仍可与其交互

我有一个图形管理器,用于使用鼠标输入管理图形并与之交互。

在 mousePressEvent 内部(不是从 QWidget 覆盖,只是从 QWidget 获取传递鼠标位置和按钮的普通方法)我创建了一个 QMenu,它在右键单击和单击图形时显示。

此代码在两个不同的项目中使用,在一个项目中,菜单按预期显示,在另一个项目中,菜单不可见但能够接受鼠标单击(我最初遇到菜单立即关闭的问题)。

项目之间的区别在于 QMenu 所在的小部件层次结构。

失败的项目

工作项目

我在做什么可能会导致这种行为?


固定的

发现了这个错误https://bugreports.qt-project.org/browse/QTBUG-7556,它解释了我遇到的问题。通过在我的 QGLWidget 周围添加一个边距来修复它不再是全屏的。

0 投票
1 回答
1058 浏览

qt - 忽略 QWidget 点击事件并将其传播到操作系统

我有一个顶级无父母QWidget,除此之外还有一堆其他的QWidgets(例如QPushButtons)。我想让我的QWidget行为对鼠标事件是透明的。因此,当我单击QWidget(但不是我的按钮)时,我希望我的窗口失去焦点并选择后面的某些内容(例如,Windows 资源管理器窗口,如果它恰好在我的窗口后面)。我还希望我QPushButton的 s 继续处理鼠标事件。

这可能吗?我尝试在小部件上设置Qt::WA_TranslucentBackgroundandQt::WA_TransparentForMouseEvents但如果我在其上绘制一些东西,例如QGraphicsDropShadowEffect小部件仍会在QGraphicsDropShadowEffect绘制它的部分上处理鼠标单击事件。

这可能吗?

问候!