问题标签 [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 投票
2 回答
1355 浏览

qt - 确定鼠标事件:悬停离开父小部件

我有 2 个小部件,一个父小部件和一个子小部件:

在此处输入图像描述

可以访问小部件的实现,是否可以在不实现任何事件处理程序或派生小部件的情况下确定光标从小部件red悬停到小部件中的时刻?redblueblue

红色区域具有明确定义的厚度(例如 5px)。

0 投票
2 回答
7558 浏览

python - PyQt mousePressEvent - 获取被点击的对象?

我正在使用 PyQt 和 PyQtGraph 构建一个相对简单的绘图 UI。作为其中的一部分,我有一个图形视图(pyqtgraph 的 graphicslayoutwidget),其中有用户动态添加的 PlotItems。

我想要实现的是允许用户通过双击它来选择一个 PlotItem。

如果用户在小部件窗口中双击某处,这很简单,但我似乎无法弄清楚如何返回单击的内容。

我的大部分搜索结果都试图为某些按钮重新实现 mousePressEvent。我已经阅读了一些有关事件过滤器的信息,但我不确定这是否是必要的解决方案。

我不确定还有哪些其他信息可能有助于回答这个问题,所以如果不清楚我在问什么,请告诉我,以便我澄清。

编辑:

这个的副本:

pyqtgraph:当我单击 PlotItem 时,我如何知道单击了哪个项目

0 投票
1 回答
166 浏览

c++ - Qt:QMouseEvent 没有从 QGLWidget 传播出去

QGLWidget 是否可以传播其鼠标事件?

我目前有一个 QGlWidget 作为我的主窗口的子窗口,但我似乎无法处理发生在它的框架上的鼠标事件。

也许我犯了一个根本性的缺陷,但是 qglwidet 本身中的鼠标事件被设置为 event->accept(),而且我也没有阻止来自 qglwidget 的传出信号。

我有一个解决方法,我只需从 qglwidget 中的每个鼠标事件中发出新信号,并将它们连接到我的主窗口中,但我只是好奇这是一个已知问题,我做错了,或者如果这根本不可能。

0 投票
0 回答
366 浏览

qt - QDrag::exec 没有调用 QGraphicsView mouseRelease

我已经在 QGraphicsView 中实现了 mousePress、mouseMove 和 mouseRelase,并且在其中添加了 QGraphicsWidget 和 QGraphicsLayoutItem 并添加到视图中。

现在在我已经实现的 graphicsLayoutitem 里面

因此,当我在 parentitem 中使用 mouseMove 时,Drag 已成功执行,当我将项目放到场景中时,graphicsView 没有获得 mouseRelease 事件。当我将 graphicsview mouseRelease 事件放到场景中时,它不会被调用。

这就是我处理场景下降的方式

我在 http://filesave.me/file/53135/DropItem-zip.html中上传的示例代码

您可以拖放项目,它将创建一个新项目。它工作正常,但是当我将 setFocus(Qt::mouseFocusReason) 给项目时,实际问题就开始了。

用户双击该项目的文本,我在其顶部添加了一个 Qgraphicstextitem。当 textitem 失去焦点时,我会删除它。

在正常情况下,无需双击项目文本,拖放工作正常。

但是当我在项目顶部添加 QGraphicsTextItem 并将焦点设置为 setFocus(Qt::mouseFocusReason) 并且如果我再次拖动项目 QGraphicsView mouseMove 事件将继续调用。

0 投票
0 回答
50 浏览

qt - 移除后的 QGraphicsItemGroup 无法添加新的

我在 QGraphicsView 上附加了 scene_

在现场我添加了两件事

我可以在场景中添加 QGraphicsItem ..

但是当我使用这个 cmd 删除一次 .. 之后我无法重绘

请有人帮忙/

其次,我需要帮助 .. 我需要 QGraphicsItem 上的鼠标事件 .. mouse Selected Qgraphicsitem 我可以识别,以便我可以对此采取一些措施

您的帮助将不胜感激

0 投票
1 回答
474 浏览

qt - 如何访问 QMouseEvent 中的受保护成员以获取鼠标位置的浮点值?[Qt 开发人员]

QMouseEvent存储鼠标位置的整数值。但是,它有一个保护成员“s”,它存储鼠标位置的浮点值。如何获得浮点值?

我曾尝试继承QMouseEvent,但不幸的是我一直收到此错误消息。

错误:C2511:“QMouseEventF::QMouseEventF(QWidget *)”:在“QMouseEventF”中找不到重载的成员函数

这是我的头文件:

这是继承的类:

0 投票
1 回答
216 浏览

c++ - 移动QWidget时QPainter黑色痕迹

我创建了一个带有 2 个小部件的小型测试应用程序,一个在另一个内部。我重新实现了内部小部件的鼠标移动、按下和释放事件,以便能够通过拖放将其移动到更大的父级中。

但是,当我移动它时,从顶部和左侧出现黑色痕迹。这是它的外观:

在此处输入图像描述

这是我的代码:

主.cpp

小部件.h

小部件.cpp

内部小部件.h

内部小部件.cpp

编辑:当我打电话时,痕迹消失了,Widget::repaint但我必须在InnerWidget每次移动时安装一个事件过滤器并重新绘制。我想要一个更清洁的解决方案,而不必使用事件过滤器......

谁能告诉我到底发生了什么?

0 投票
2 回答
354 浏览

qt - graphicsview 在 item 之前接收到鼠标事件

我已经使用鼠标移动事件在 QGraphicsView 上实现了平移视图

在这个视图的场景中,我添加了一些项目,其中一些项目是可调整大小的,所以我实现了

我尝试使用 e->accept() 过滤鼠标移动以不进一步传播,但我的 View mouseMove 事件已被首先调用,因此当我尝试调整项目大小时,视图开始一直平移。

如何避免此事件从视图传播到场景。

0 投票
2 回答
1193 浏览

c++ - 在 MousePressEvent 中使用 QDialog

我有一个类,它的子类QDialog没有覆盖exec()accept()或者reject()另一个Dialog类,它在其内部调用该类mousePaintEvent

我尝试使用对话框的存在进行检查,但delete并没有真正起作用(我将它放在 dialog.reject() 之后),我什至尝试使用 bool,我再次在 dialog.reject() 之后将其设置为 false在最后一个如果,但我开始认为,.reject() 之后没有任何效果。我该如何进行?

0 投票
1 回答
590 浏览

qt - Qt:在鼠标移动期间更改 QGraphicsItem 接收器