问题标签 [qt-events]
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.
c++ - 以非阻塞方式打开 QDialog
我有一个像这样打开的 QDialog:
对话框打开得很好,但不幸的是,调用 openDialog() 时不会打印“Hello World” - 即使在关闭对话框之后也是如此。但是,当我之后打开另一个完全不相关的文件对话框时,会打印出该消息。
是什么导致对话框阻塞,直到打开另一个对话框?当我使用this->dialog->exec();
or时也会发生同样的事情this->dialog->show();
。
可能值得注意的是,它MyModule::openDialog()
是一个连接到按钮点击事件的插槽。
有任何想法吗?
qt - Qt 中的事件传播
我只有关于Qt 事件系统和QEvent
类的文档。我对该QObject::event()
方法的行为感兴趣。该文档指出:
这个虚函数接收一个对象的事件,如果事件 e 被识别和处理,应该返回 true。
false
从方法返回时的预期行为是event()
什么?为了处理该事件还尝试了什么?事件是否自动转发给父对象?
注意:我知道来源可用,并且我有一份副本。理想情况下,我正在寻找一些解决此行为的文档。
qt - QT Mobile:如何在 QT Mobile 应用程序中播放 .swf 文件
如何在 QT 移动应用程序中播放 .swf 文件。?
正如我在下面应用了两个 ui->webView->settings()->setAttribute(QWebSettings::PluginsEnabled,true); ui->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
但我还是无法播放 .swf 文件?
c++ - 使用悬停事件
我无法在QGraphicsRectItem
.
我已经对这个对象进行了子类化,并重新实现了悬停进入和悬停离开处理程序......或者至少我认为我有。我还在构造函数中将接受悬停事件设置为 true。
但是,该事件永远不会被触发。处理程序内的断点永远不会被命中。
这是课程:
我做错了什么?
qt - 在 QListView 上为 indexWidgets 安装 eventFilter
我有一个带有一些组件(combobox、lineEdit、labels..etc)的 customWidgets,这个 customWidget 是使用 setIndexWidget(QModelIndex,QWidget) 添加到 QListView 的,我的要求是当我单击 customWidget 上的任何组件时,QListView 项目应该得到选择/聚焦。
如何从 cutomWidget 到 QListView 安装EventFilter,我已经为 customWidget 安装了事件过滤器。
谢谢
c++ - Qt QGraphicsView 事件
我有一个View
包含我的类,QGraphicsView
但我无法从它继承。我的代码如下:
并Game
继承自View
:
我已经paintEvent
快速实现cout
了game
. 当我编译时,一切都编译好了,但是当我运行时,我不断收到一条消息,说调用了一个纯虚函数:
我的View
构造函数如下所示:
任何帮助将不胜感激。
qt - Pyside QgraphicsScene 无法捕获鼠标事件
我找不到将鼠标事件附加到场景的方法。没有查看所有事件都会被捕获,但是当被注释掉时,只有 mousePressEvent 有效。请帮忙。
c++ - Qt GUI 事件记录和回放
我正在尝试实现一个简单、轻量级的系统来记录 Qt GUI 事件并从脚本中回放它们。我认为使用 Qt 的事件系统的魔力这将是相当简单的,但我遇到了一个我不明白的问题。
这是我正在做的事情的快速总结:
记录:
我QApplication.instance().eventFilter()
用来捕获我感兴趣的所有 GUI 事件*并将它们保存到 Python 脚本中,其中每个步骤看起来像这样:
回放:
我只是在工作线程(非 GUI )中执行上面的脚本。(我不能使用 GUI 线程,因为我想继续向应用程序发送脚本事件,即使在模式对话框事件循环运行时阻塞了“主”事件循环。)
重要的事情发生在我的post_event()
函数中,它需要做两件事:
- 首先,打电话
QApplication.postEvent(obj, recorded_event)
- 等待所有事件完成处理:**
- 将特殊事件发布到
obj
正在运行的同一事件循环中。 - 处理特殊事件时:
- 称呼
QApplication.processEvents()
- 设置一个标志,告诉播放线程可以继续
- 称呼
- 将特殊事件发布到
在第二部分完成后,我的期望是第一部分(录制的事件)的所有效果都已完成,因为特殊事件在录制事件之后排队。
整个系统似乎对鼠标事件、按键事件等都很好。但是QAction
当我尝试为我的 main 播放事件时,我遇到了处理程序的问题QMenuBar
。
无论我尝试什么,似乎我都无法强制我的播放线程阻止QAction.triggered
由于单击我的QMenu
项目而导致的所有处理程序的完成。据我所知,在处理程序完成之前QApplication.processEvents()
返回。QAction
QMenu
小部件或信号是否有什么特别之处会破坏和/或QAction
的正常规则? 我需要一种方法来阻止我的处理程序的完成。QApplication.postEvent()
QApplication.processEvents()
QMenu
QAction
[*] 并非每个事件都被记录下来。我只记录spontaneous()
事件,也过滤掉一些其他类型(例如Paint
事件和普通的鼠标移动)。
[**] 这很重要,因为脚本中的下一个事件可能引用由上一个事件创建的小部件。
qt - 如何在不使用 Qt 内部头文件的情况下压缩 QEvents?
由于迭代已发布事件列表所需的标头QCoreApplication::compressEvent
被认为是私有的,有没有一种方法可以在不依赖 Qt 内部标头的情况下获得等效功能,而仅依赖于 Qt 的文档化语义?
请注意,这是另一个关于信号和插槽的问题!
c++ - 在 Qt 中隐藏或显示 QStackedWidget 项
我想在 中显示或隐藏项目QStackedWidget
。当我按下 Enter 按钮时,它应该显示一个堆叠的元素,当我按下左键时,它应该隐藏。我使用QStackedWidget
和QListWidget
。我的代码:
mymainwindow.h
:
mymainwindow.cpp
: