问题标签 [qevent]

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 回答
86 浏览

c++ - 了解其他班级发生的事件

我有两节课:

AdaptedWidget我需要从我的对象中获取有关对象中发生的事件的信息,WindowManager我该怎么做?

0 投票
1 回答
5245 浏览

qt - 获取 Pixmap 是调用函数 500 次时的空像素图

我在 qt 标签中显示图像。下面是我的代码:

单击按钮时,它将向服务器发送请求,并显示从服务器接收到的不同图像。如果它不超过 500 次,它工作正常。如果它超过第一个,则显示此错误

它不显示图像。然后,如果有人再次发送图像请求,则会显示以下错误:Qt 已捕获从事件处理程序引发的异常。Qt 不支持从事件处理程序中抛出异常。您必须QApplication::notify()在那里重新实现并捕获所有异常。

我没有得到上面代码中的错误。有人可以告诉我如何解决这个问题吗?

0 投票
0 回答
157 浏览

c++ - 为什么 Qt3DRender::QPickEvent 不继承自 QEvent?

Qt3D 引入Qt3DRender::QPickEvent了例如当用鼠标单击 3D 对象时可以发出的。

为什么它不是派生自QEvent, 根据其文档,它应该是“所有事件类的基类”?

0 投票
1 回答
708 浏览

python - QTableView 不会将预期的 FocusIn / FocusOut 事件发送到 eventFilter

我有一个需要大量水平空间的浮动或复杂条目的 QTableWidget。通过字符串格式显示位数减少的值效果很好,但显然我在编辑和存储表中的条目时失去了精度。

我通过使用 eventFilter 找到了 QLineEdit 小部件的解决方案:FocusIn事件将存储的值以全精度复制到 QLineEdit 文本字段,FocusOut事件或Return_Key存储更改的值并用减少的位数覆盖文本字段。

对 QTableWidgets 使用相同的方法会给我以下(可能相关的)问题:

  • FocusIn 和 FocusOut 事件未按预期生成:当我双击一个项目时,我得到一个 FocusOut 事件,单击另一个项目会产生一个 FocusIn 事件
  • 我无法复制我编辑的选定项目的内容,我总是得到未编辑的值。
  • 通过单击选择一个项目不会产生事件。

我已经尝试评估 QTableWidgetItem 事件,但我没有收到任何事件 - 我需要在每个 QTableWidgetItem 上设置事件过滤器吗?如果是这样,我是否需要在每次调整表格大小时断开 QTableWidgetItem eventFilters(在我的应用程序中经常这样做)?用 QLineEdit 小部件填充我的表格是否有意义?

附加的 MWE 并不小,但我可以进一步缩小它。

0 投票
1 回答
2096 浏览

qt - QListWidget 上带有 MouseButtonRelease 的 QT eventFilter 未检测到鼠标按下/释放

它应该很简单,但不知何故它没有按应有的方式工作。我正在尝试在 QListWidget 上使用 eventFilter 鼠标按钮按下或释放来捕捉。ListWidget 是在 UI 下准备的。我已经像这样安装了 eventFilter

我在公共下的标题中添加了:

并在 MainWindow 下创建

我已经检查了文档,它说每个事件在发送到给定的 QWidget 之前都被传递给 eventHandler。这部分是正确的。因为 KeyPress 和 ContextMenu 正在工作。即使列表小部件设置为 blocksingals(true)。

问题是 MouseButtonRelease / Press 不起作用。有东西挡住了它,我不知道是什么或如何让它工作。我也有 on_listWidget_clicked 但即使摆脱它仍然无法正常工作。

请帮忙。谢谢

0 投票
1 回答
339 浏览

c++ - 转发从 QCoreApplication::postEvent 收到的 QEvent 是否安全

我有一个运行多个线程的 QT C++ 应用程序,线程使用 QCoreApplication::postEvent 机制相互传输信息。QCoreApplication::postEvent 文档明确声明必须在堆上分配事件,并且在事件发布后访问事件是不安全的。

http://doc.qt.io/qt-5/qcoreapplication.html#postEvent

当我的应用程序中的一个线程接收到另一个线程发送给它的事件(通过 QObject::event)时,它通常会通过 postEvent 方法将事件“转发”到不同的线程。 这安全吗?我是否应该创建一个全新的事件,它是原始事件的副本?我的应用程序根本没有崩溃......但这并不意味着风险不存在。 QT 事件何时被视为“已发布”?

0 投票
1 回答
305 浏览

qt - 永远不会为 QQuickView 窗口生成 QEvent::Drop 事件

我正在为我的窗口QEvent::Drop永远不会生成事件的问题而苦苦挣扎。QQuickView

我需要实现拖放功能,将文件从资源管理器拖放到QQuickView.

如本文所述我为对象安装了一个事件过滤器QQuickView,并在eventFilter()方法中尝试捕获所需的事件。QEvent::DragMove正在按预期生成,因为我将文件拖到视图上。但是当我将文件放在视图上时,QEvent::Drop并没有生成。而是QEvent::DragLeave生成 。

这是一个(事件)过滤器类代码:(标题)

(来源)

0 投票
3 回答
824 浏览

c++ - 如何丢弃 QEvent 而不是忽略它

我有两个小部件ParentWidget,它们都是ChildWidget从.QWidgetvoid dragEnterEvent(QDragEnterEvent *event)

现在ChildWidget包含在ParentWidget. 现在假设某个QDragEvent*被调用event可能对 有效ParentWidget,但对 无效,ChildWidget并假设dragEnterEventforChildWidget被调用。

现在我可以调用event->ignore()以忽略事件 for ChildWidget,但随后调用dragEnterEventfor ParentWidget

这是我的问题。我不希望,dragEnterEvent如果ParentWidget事件已经在ChildWidget.

简单地说,我只是不希望事件被忽略,而且事件需要在dragEnterEventof中完全丢弃ChildWidget

假设ParentWidgetChildWidget是松散耦合的组件,如何实现这样的行为?

最小的例子

以下示例显示了我想要实现的目标,并且在某种意义上也是一种可行的方法。在更复杂的情况下,它会导致代码过于复杂。

ChildWidget接受以 结尾的文件名txt,而接受ParentWidget所有丢弃,除了已经被 忽略的那些ChildWidget

主文件

父小部件.h

ChildWidget.h

0 投票
1 回答
93 浏览

qt - 按退格键时 QCombobox 写“HELLO”

当我按下 Qcombobox->linEdit()、键 Backpace 并清除所有文本时,我想要拦截信号。我在网上看到,我写了这段代码,但它不起作用。似乎没有调用keypressevent函数..一些提示???

0 投票
0 回答
564 浏览

qt - 如何将小写键发送到 Qt 小部件

我有一个加载某个网站的 QWebView。现在,我想模拟一个在 html 输入字段中输入内容的人。

我将焦点放在输入字段上,然后继续:

这可行,但输入的键始终是大写的 I。我需要将小写的 i 发送到小部件。不幸的是,Qt 类只提供 Qt::Key_X 或 Qt::Key_A - 而不是 Qt::Key_a。

我怎么解决这个问题?