问题标签 [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.

0 投票
2 回答
1183 浏览

c++ - 以非阻塞方式打开 QDialog

我有一个像这样打开的 QDialog:

对话框打开得很好,但不幸的是,调用 openDialog() 时不会打印“Hello World” - 即使在关闭对话框之后也是如此。但是,当我之后打开另一个完全不相关的文件对话框时,会打印出该消息。

是什么导致对话框阻塞,直到打开另一个对话框?当我使用this->dialog->exec();or时也会发生同样的事情this->dialog->show();

可能值得注意的是,它MyModule::openDialog()是一个连接到按钮点击事件的插槽。

有任何想法吗?

0 投票
2 回答
12022 浏览

qt - Qt 中的事件传播

我只有关于Qt 事件系统QEvent的文档。我对该QObject::event()方法的行为感兴趣。该文档指出:

这个虚函数接收一个对象的事件,如果事件 e 被识别和处理,应该返回 true。

false从方法返回时的预期行为是event()什么?为了处理该事件还尝试了什么?事件是否自动转发给父对象?

注意:我知道来源可用,并且我有一份副本。理想情况下,我正在寻找一些解决此行为的文档。

0 投票
1 回答
604 浏览

qt - QT Mobile:如何在 QT Mobile 应用程序中播放 .swf 文件

如何在 QT 移动应用程序中播放 .swf 文件。?

正如我在下面应用了两个 ui->webView->settings()->setAttribute(QWebSettings::PluginsEnabled,true); ui->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);

但我还是无法播放 .swf 文件?

0 投票
2 回答
4819 浏览

c++ - 使用悬停事件

我无法在QGraphicsRectItem.

我已经对这个对象进行了子类化,并重新实现了悬停进入和悬停离开处理程序......或者至少我认为我有。我还在构造函数中将接受悬停事件设置为 true。

但是,该事件永远不会被触发。处理程序内的断点永远不会被命中。

这是课程:

我做错了什么?

0 投票
1 回答
780 浏览

qt - 在 QListView 上为 indexWidgets 安装 eventFilter

我有一个带有一些组件(combobox、lineEdit、labels..etc)的 customWidgets,这个 customWidget 是使用 setIndexWidget(QModelIndex,QWidget) 添加到 QListView 的,我的要求是当我单击 customWidget 上的任何组件时,QListView 项目应该得到选择/聚焦。

如何从 cutomWidget 到 QListView 安装EventFilter,我已经为 customWidget 安装了事件过滤器。

谢谢

0 投票
1 回答
699 浏览

c++ - Qt QGraphicsView 事件

我有一个View包含我的类,QGraphicsView但我无法从它继承。我的代码如下:

Game继承自View

我已经paintEvent快速实现coutgame. 当我编译时,一切都编译好了,但是当我运行时,我不断收到一条消息,说调用了一个纯虚函数:

我的View构造函数如下所示:

任何帮助将不胜感激。

0 投票
1 回答
1869 浏览

qt - Pyside QgraphicsScene 无法捕获鼠标事件

我找不到将鼠标事件附加到场景的方法。没有查看所有事件都会被捕获,但是当被注释掉时,只有 mousePressEvent 有效。请帮忙。

0 投票
2 回答
2518 浏览

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()QMenuQAction

[*] 并非每个事件都被记录下来。我只记录spontaneous()事件,也过滤掉一些其他类型(例如Paint事件和普通的鼠标移动)。

[**] 这很重要,因为脚本中的下一个事件可能引用由上一个事件创建的小部件。

0 投票
1 回答
446 浏览

qt - 如何在不使用 Qt 内部头文件的情况下压缩 QEvents?

由于迭代已发布事件列表所需的标头QCoreApplication::compressEvent被认为是私有的,有没有一种方法可以在不依赖 Qt 内部标头的情况下获得等效功能,而仅依赖于 Qt 的文档化语义?

请注意,这是另一个关于信号和插槽的问题!

0 投票
1 回答
5428 浏览

c++ - 在 Qt 中隐藏或显示 QStackedWidget 项

我想在 中显示或隐藏项目QStackedWidget。当我按下 Enter 按钮时,它应该显示一个堆叠的元素,当我按下左键时,它应该隐藏。我使用QStackedWidgetQListWidget。我的代码:

mymainwindow.h

mymainwindow.cpp