问题标签 [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 回答
2434 浏览

c++ - 如何识别子小部件中的 QMouseEvent?


编辑和一些自我批评我尝试了两种给定的解决方案,它们都解决了我的问题,因此我感谢你们!我将透明解决方案标记为已接受,因为当我只有一个子小部件时,我认为这是最简单的实现,但我希望与其他初学者分享一些见解:

我第一次使用QLabel,默认情况下显然已启用Qt::WA_TransparentForMouseEvents,因此显然有效,但我也希望文本可以通过使用QPlainTextEdit来选择。可笑的是,这是不可能的,因为如果您尝试选择文本(通过单击),您将关闭窗口!我最终保持了透明度,而忽略了选择文本功能。


我猜我的以下问题之前已经在某个地方得到了回答,但是经过一个小时的搜索,我现在自己发布了这个问题。如果有人能指出一个已经回答的问题来解决我的问题,我将不胜感激。

无论如何,我正在使用 C++ 和 Qt 创建一个弹出窗口。我创建了以下PopupDialog类,它可以很好地用于所有目的。但是,我已经删除了它的框架(包括包含关闭按钮和窗口标题的栏)以使其看起来很简约,现在我希望它在用户在弹出窗口(对话框)内的任何位置按下/释放鼠标按钮时关闭.

下面的代码可以工作,但是我必须在 QDialog 窗口本身准确地单击并释放鼠标。如果鼠标悬停在显示文本的QDialog(例如 a )内的子小部件上,当我单击时它不会关闭。QPlainTextEdit

因此,我需要一个解决方案QDialog来识别QMouseEvents其子小部件。请不要犹豫,询问是否有不清楚的地方。我没有包含我的 mainwindow.h/.cpp 文件或popupdialog.ui文件,因为我认为在这里发布有点太多了,但.ui非常简单:只有一个QDialog窗口持有 a QBoxLayout,包含一个小部件, a QPlainTextEdit。如果有帮助,我可能会应要求发布这些内容。

...

0 投票
0 回答
127 浏览

c++ - 如何将 QMouseEvent 发送到 QWebEngineView?

上下文:我正在创建一个网络浏览器。我需要将鼠标事件发送到网页。

它可以与 Qt WebKit 一起使用,但现在有些网站无法与 QT WebKit 一起使用。所以,我需要将我的网络浏览器移动到 Qt WebEngine。但是我对 QMouseEvent 的旧解决方案不起作用。

QWebView 的解决方案:

这个问题可以通过使用 JavaScript 来解决,但我需要 QMouseEvent。

如何将鼠标事件发送到 QWenEnginePage?

0 投票
0 回答
361 浏览

pyqt - 如何获取鼠标单击的文本位置?

我想在 QTextEdit 上单击鼠标,然后从文档中获取该单击的文本位置。如果点击导致插入字符,我的点击会在哪里?我希望颠覆 QTextEdit 的一些功能,所以我不想在处理点击后简单地从 QTextCursor 获取位置。基本上我自己重新实现了 mousePressEvent,但仍然需要知道最接近的字符间隙是什么。

0 投票
1 回答
1625 浏览

qt - Qt WebEngine simulate Mouse Event

I want to simulate mouse Event in my Qt WebEngine app.

I use PyQt5.8 , QT5.8.

This is my code:

I test it, but it does not worked. I can confirm mouse cursor on the element, but no mouse click event happend. Can anyone help me?

I use Mac OS 10.12.4, I test it using another demo, I find I can not catch Mouse Event, but I can catch other events. Any suggestions?

0 投票
2 回答
583 浏览

c++ - qt按住鼠标按钮和定时器cpp

我不知道如何连接定时器超时和鼠标事件类。当每 200 毫秒按下鼠标按钮时,我需要在“waterfield”(qwidget)中绘制一个新粒子。当我释放按钮画家不应该画更多。我在构造函数中得到了这个:

在我的课堂上有 slot taptap()和 bool tapenable

这是不起作用的代码:

在我点击程序崩溃后。我认为这样做是个好主意。计时器设置为 200 毫秒,因此设置了每 200 毫秒的信号超时,插槽 taptap 接收它并检查是否可以通过 mousepressevent 设置或通过 mousereleaseevent 重置。有什么建议么?

0 投票
1 回答
16630 浏览

python - 如何在 PyQt5 中通过拖放来绘制矩形并调整其形状

我正在尝试通过拖放在 PyQt5 创建的 GUI 上绘制一个矩形。我设法做到了,但是释放鼠标左键时会绘制矩形。

我想要做的是这样的链接

  • 当按下鼠标左键时,开始绘制矩形。
  • 拖动时,通过鼠标移动调整矩形形状。
  • 释放鼠标左键时,确定矩形形状。

我该如何实施?提前致谢。

这是我的代码。

0 投票
0 回答
346 浏览

qt - Qt检查鼠标是否在QGraphicsItem的边界矩形中

我想GQraphicsPixmapItem通过单击像素图边界矩形内的任何点来拖动。问题是如果像素图具有透明部分(png 图像),则除非鼠标位于实际图像之上,否则该项目不会接收鼠标事件:

当鼠标在透明部分顶部时如何获取鼠标事件?或者有效地检查鼠标是否在边界矩形内?

图像示例

在此处输入图像描述

0 投票
0 回答
1457 浏览

opencv - 使用 Qt 和 Opencv 为高分辨率图像选择 ROI

我正在从事一个涉及从高分辨率图像中选择 ROI 的项目(更像是 5187x3268 之类的)。现在我findContours在 OpenCV 中使用来检测圆形物体(因为霍夫圆对于高分辨率图像来说有点慢)。问题是由于物体上的大量纹理,findContours有时会出错。

我现在正在做的是向用户显示findContours在 Qt 窗口中检测到的内容,并确定它是否检测正确。如果检测正确,用户将按下Ok按钮,否则将按下按钮No, Let me select

当用户按下No, Let me select时,应用程序将开始捕获mouseEvent并使用QRubberBand. 我QLabel用来显示图像,因为我的屏幕尺寸是1920x1080,我必须将图像调整为某个分辨率(比如说 1537x1280,以便为按钮留出一些空间)。我正在使用 opencvresize来调整图像大小。

我正在使用比率来计算这样的尺寸减小(

,并将坐标与比率相乘event.pos()以获得原始图像中的正确坐标。

由于坐标将是浮动的,我将它们四舍五入。问题在于对浮点值进行四舍五入,因为我在转换中失去了精度。

精度很重要,因为我需要principal coordinates(calculated by calibrating the stereo setup)从图像中选择 ROI 后重新计算。

在此处输入图像描述

Opencv如何在调整大小后正确计算原始图像坐标?当我使用打开相同的图像时,我观察到它imshow,如果我拖动鼠标,我可以看到原始图像坐标,即使图像已调整大小以适合屏幕。

如果有人可以在这个问题上帮助我,我将不胜感激。

0 投票
1 回答
2944 浏览

c++ - 如何在 Qt 5 上的paintEvent 上使用 mouseMoveEvent?

我是 Qt 和 c++ 的新手,所以我遇到了一些困难。我正在尝试创建一个可以获取 mouseMoveEvent 位置并在鼠标位置上的像素图上绘制椭圆的小部件。您可以在下面看到代码:

鼠标位置正在控制台上打印,但图像上没有椭圆。

你可以帮帮我吗?

问候,

加布里埃尔。

0 投票
1 回答
247 浏览

c++ - 获取小部件上的绝对鼠标单击位置(也放大时)Qt

我想触发我在 QGraphicsView 上用鼠标单击的位置。这里的问题:这个 QGraphicsView 总是放大。但我想获得相对于整个小部件的点,而不仅仅是视口。或者换句话说:当我放大并单击左上角时,位置不应该是 0,0(QMousePressEvent 只是给了我这一点)。应该是从那里到整个sceneRectangle左上角的距离(或者到中间,无所谓)。有没有办法做到这一点?感谢您的回答。