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

python-3.4 - python3.4 + pyqt5:从 QMouseEvent 中获取 x,y

+

我试图编写一个程序,在该程序中,按钮应通过拖动和按下来创建其他按钮,以形成滚动磨坊街的表示。我创建了一个 Button 类,它执行移动并处理创建中按钮的几个单击事件。这部分工作正常。我卡住的地方,我想读取应创建这些按钮的鼠标位置。
这是代码:

提供了几个函数,但是 posx 行给了我这个错误:
TypeError: QMouseEvent.x(): first argument of unbound method must have type 'QMouseEvent'

posy-line 给出了 <built-in function y > 这也不是我想要的,但很清楚。

MouseTracking 在MainWindow类中打开。

也许,通常人们会通过在 def 行中使用event来做到这一点,但由于它是一个插槽,这会导致其他问题。

有什么相处之道吗?

更新:建议这里是原型的完整代码:#!/usr/bin/env python3.4

干杯,基督徒

0 投票
2 回答
3586 浏览

c++ - Qt mouseReleaseEvent() 没有被触发?

我有一个库来显示图片,我们称之为 PictureGLWidget,其中包含:

class PictureGLWidget: public QGLWidget {

所以 PictureGLWidget 扩展了 QGLWidget。在 PictureGlWidget 中

已经实施。

我开始了一个自己的项目,比如说 MyMainWindow 类,我只使用 PictureGlWidget 作为指针对象:

此时,我已经可以在我的 MainwindowWidget 中看到 PictureGlWidget 和对应的图片了。当我单击那个 PictureGlWidget 时,按住鼠标,我可以移动图片(就像 2D 滚动一样),因为它比我的小 MainWindow 大得多。

进一步对 PictureGlWidget 提供了一个功能

它只是告诉我图片中心位置,我发布了图片的当前剪辑。请记住,我的图片比我的小 MainWindowWidget 大得多,因此比我的 PictureGLWidget 大得多。想象一下图片有 4000x4000px(左上角 0,0)。PictureGLWidget 仅用于显示 800x800 像素。所以 getPictureLocation() 设置当前显示图片部分的中心坐标,它会返回类似 (400, 400) 的东西,它可能位于左上角的中间位置。

我想抓住当前显示的图片部分(只是那张大图的一小部分)中心位置,在滚动那个小部件之后我释放了鼠标。我以为我可以通过覆盖

MyMainWindow::mouseReleaseEvent(QMouseEvent *event){ qDebug() << "Mouse released!"; }

方法,但还没有在任何地方连接它。目前它没有对我的 mouseReleases 做出反应,并且没有显示该文本。

0 投票
2 回答
3399 浏览

c++ - 在类中过滤 Qt 中的鼠标点击

我希望能够通过按下一个按钮或一个键来启用和禁用过滤整个 QMainWindow 上的鼠标点击,这将导致过滤开始。我想从一个类中启用事件过滤器,QMainWindow.

我希望能够在我的班级中有一个我们可以调用的事件过滤器MyWindow,根据我发现我应该创建一个新班级MouseFilter,重新定义eventFilter(QObject* object,QEvent* event)并将其安装在 myWindow

有没有办法可以从我的对象内部实现事件过滤器?


解决方案

我想我可能把事情复杂化了。它就像子类化一样简单mousePressEvent

0 投票
1 回答
478 浏览

c++ - “错误:C2275:'QMouseEvent':非法使用这种类型作为表达式”

'我目前在尝试编译该程序时遇到问题。该程序应该在 GUI QWidget 上显示鼠标的坐标错误在 mainwindow.cpp 文件的第 6 行'

'主窗口.cpp 文件'

'主要.cpp'

请帮忙,我知道它与指针和可能的变异器有关,但我还看不到它。谢谢你。

0 投票
1 回答
190 浏览

qt - QMouseMoveEvent 和 QKeyEvent 修饰符的意外行为

我在代码中遇到意外行为。我有一个包含 QGraphicsScene 的 QGraphicsView。现在我想检测用于缩放视图的鼠标滚轮和用于移动场景中项目的鼠标移动,后者仅在按下 controll 时。现在我有两个问题:

  1. 即使鼠标没有移动而只移动鼠标滚轮,也会调用 MouseMoveEvent。

  2. 在按下和不按下控件的情况下移动都可以正常工作,但是当我在按下控件时停止移动并继续使用鼠标滚轮时,不仅调用了 mousemoveevent,而且 controllmodifier 仍然处于活动状态。问题是什么?

主文件

ppi.h

ppi.cpp

ppiview.h

ppiview.cpp

ppiscene.h

ppiscene.cpp

0 投票
2 回答
294 浏览

c++ - Qt:捕获的 mouseMoseEvent 不与 QWebView html 页面元素交互

mouseMoveEvent发现我QWebView重新启动了屏幕保护程序的计时器。问题是现在没有mouseMoveEvent分配给 HTML 元素,因此不可能例如在页面上移动滑动条。

我使用 connect 绑定mouseMoveEvent到重启槽:

网络视图类:

是否有解决方案仍然可以捕获信号并将其传递给 HTML 页面?

0 投票
1 回答
57 浏览

c++ - 我如何知道在单独的类中创建的 QGraphicsItem 是否已经在场景中移动(改变了它的位置)?

GraphicsItem在一个新类中创建了一个并将其发送到GraphicsView另一个文件中。我已将标志设置ItemIsMovable为 true,并且可以移动该项目。

我怎么知道用户把它移到了哪里?而且,我怎样才能手动设置位置?

[基本上我有一个项目,如果用户将它移动到足够靠近正确的位置我想自动将它移动到正确的位置]

为了获取鼠标事件,我使用了这些函数:

我目前的想法是也使用绘制算法,并为 Pressed 创建一个类似于下面显示的 if 语句(它会在按下时更改项目的颜色)。

本质上:您如何获得 a 的坐标QGraphicsItem以及如何更改它们?

0 投票
1 回答
426 浏览

c++ - QTextEdit focusOut 以编程方式不起作用

我有一个自定义QTextEdit覆盖::mouseMoveEvent(QMouseEvent *e)::focusOutEvent(QFocusEvent *e). QTextEdit 的上下文是可选择的。在选择模式下,当用户超出 QTextEdit 的界限时,我想通过在 ::mouseMoveEvent 中以编程方式停止选择:

我发现当用户释放鼠标时,会立即调用 focusOutEvent。

问题:即使我以编程方式调用 focusOutEvent,也根本没有调用 focusOutEvent。它仅在用户释放鼠标单击时调用。我也尝试过 mouseReleaseEvent 但这是同样的问题。

为什么不调用focusOutEvent?可以做什么?如果我的问题有另一种解决方案?谢谢!

0 投票
1 回答
437 浏览

qt - QHeaderView 鼠标跟踪失败

我需要将一些简单的过滤器功能连接到鼠标单击 QTreeView 标题项。很简单,我实现了一个插槽函数,它连接到:

QTreeView::header()->sectionClicked(int)

设置后

QTreeView::header()->setSectionsClickable(true)

,sectionClicked每当我单击任何可点击标题都会产生的默认悬停效果突出显示的标题时都会发出。

问题是,将无法识别悬停在可点击标题中的某些区域上。因此,在这些部分没有亮点,我不会得到任何sectionClicked触发器。我进一步追溯它并从中派生出我自己的类QHeaderView并将一些输出放入mouseMoveEvent.

在保留所有QTreeView设置不变的同时,我将此类的一个实例设置为通过

QTreeView::setHeader(QHeaderView*)

我可以看到,在所有区域中,悬停效果都失败了,我没有得到你可以在覆盖的mouseMoveEvent.

因此,我假设鼠标跟踪无法正常工作。

我正在处理的整个应用程序非常庞大,因此我为所有这些设置了一个独立的示例。令我惊讶的是,一切都按预期进行。我无能为力,我应该如何处理。谁能想到鼠标跟踪在小部件的某些部分失败的原因?这可能是与性能不足有关的帧速率问题吗?小部件上是否有影响整个鼠标跟踪区域的设置?父小部件会影响鼠标跟踪吗?

0 投票
0 回答
167 浏览

c++ - QToolTip::showText 鼠标释放后消失

在mousePressEvent里面我做

但是释放鼠标按钮后工具提示消失了。如果我不释放它,工具提示会在 1000 毫秒后消失。