问题标签 [qtimer]

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

c++ - 在 QTimer 重置时触发不同的事件

我正在构建一个使用 QTimer 显示交通信号灯图像的小程序。所以我设置了我的计时器,一切正常。但我不知道,每次达到定时器间隔时,如何让机器人灯 ->show() 和 ->hide()。我可能有这一切都错了,我还在学习,所以请指教。

主窗口.h

主窗口.cpp

我还禁用了单击时的“开始”按钮,因此计时器不能运行两次。

因此,在主窗口 UI 上,我基本上有一个 Spinbox,它接受用户的输入,这是我将其传递给 Qtimer 的时间,然后我有 3 个带有红色绿色黄色灯光的图像,它们必须在间隔中显示和隐藏. 所以我创建了几乎类似于手动循环的东西。Qtimer 启动并显示绿色,然后进入 ShowYellow Slot,然后显示 Red 插槽,所以现在,它假设进入 Green 插槽然后变为黄色,但它不会再次进入 Green。

谁能告诉我为什么不。

0 投票
1 回答
756 浏览

c++ - 我可以使用 singleShot(true) 使正在运行的 QTimer 在下一次拍摄后停止吗?

我有一个QTimer触发周期性事件。

我不想直接停止计时器,因为我想将一些特殊信号同步到最后一个事件。

我可以通过设置它来实现这setSingleShot(true)一点,QTimer以便下一次拍摄将是单次拍摄,并且计时器在下一次拍摄后停止吗?

编辑: 它似乎工作。但setSingleShot(true)似乎不是原子的:我有时会在计时器停止之前观察到 2 次射击。

0 投票
0 回答
220 浏览

c++ - 终止 QThread 时,内部 QTimer 不会从正确的线程中终止

我有一个创建 QGraphicsSimpleTextItem 的 QThread。当我关闭我的应用程序时,我尝试完成线程然后终止它。

QGraphicsSimpleTextItem::setFont()一切都很好,直到我在我的线程中添加一个调用。如果我这样做,Qt 的内部 QFontCache 系统将被调用,并将启动一个 QTimer(从我的线程)。然后当我终止 QThread 时,当 Qt 清理事件循环时(从主)调用 killTimer 并且我得到错误:

我应该怎么做才能避免这个问题?这不应该被视为字体缓存机制的错误吗?谢谢你的帮助。

0 投票
0 回答
1833 浏览

qt - QTimer 用完窗口管理器对象的所有句柄

我正在使用 aQTimer来触发对函数的重复调用,但是它最终因以下错误而崩溃

正如此链接中所述,计时器对象占用了这些句柄。有没有办法阻止这种情况?我的程序需要一直运行而无需重新启动且无需用户输入,并且增加系统容限(如某些人所建议的那样)似乎只会延迟崩溃而不是防止崩溃。

定时器代码

计时器不会在其他任何地方重新创建。

0 投票
2 回答
820 浏览

c++ - 在 Qt 中计时事件的最佳方法

我正在用 Qt/c++ 编写一个软件,它通过串行与 arduino 和其他电子设备进行通信。

我需要启动一系列事件,这些事件以不同的时间调用不同的插槽,如下所示:

  • 启动电机 1 20 秒
  • 10 秒后启动电机 2
  • 停止电机 1
  • 更改电机 1 速度
  • 启动电机 1 30 秒

我试过 QTimer::singleShot 但它只适用于没有参数的插槽,我需要不时设置不同的参数,如电机速度。

现在我正在使用与 currentTime do dieTime 相对的延迟函数,但跟踪所有设备的时间很复杂。

这样做的最佳解决方案是什么?建议?

0 投票
2 回答
467 浏览

c++ - 传递当前时间变量

我试图让一个文本编辑框使用 QTimer 每 5 秒显示一次当前时间。我在一个单独的方法中计算了当前时间,然后让 QTimer 调用该方法并显示当前时间。我一生都无法弄清楚如何将变量从 setCurrentTime 方法传递给 QTimer。我确定这是一个非常容易解决的问题,但我无法弄清楚。这是我的代码。

0 投票
2 回答
1321 浏览

timeout - QTimer 不触发(触发)超时

我想使用 Qtimer 来暂停执行给定的代码块,而在另一个线程中它会执行其他操作。我用 qeventloop quit 连接了线程的超时,但问题是,没有调用超时。当另一个发射发生时,超时被神奇地触发,或者如果我添加另一个连接,超时也会被触发。我想我错过了关于使用 qtimer、qeventloop 和 qthread 的一些东西。任何人都可以帮忙吗?我提取了用于测试的基本代码并将其放在这里:

主文件

时间

时间.cpp

//用于测试widget.h的gui

小部件.cpp

0 投票
1 回答
1006 浏览

qt - Modal QDialog 仍然允许定时器调用槽?

在我的 Qt 程序中,我有一个模式QDialogs,旨在停止一切,直到它被解除后才继续执行代码。它适用于它所在的函数——我在下一行代码上放了一个断点,qDialog::exec()直到我关闭对话框后它才会中断。

但是,QTimer在其超时时有一个连接到插槽,即使模式对话框启动并执行其插槽中的代码,它也会继续运行。

我想我可以在显示modal dialog. 但是,可能存在对话框与计时器完全不同的类的情况。有没有办法真正停止程序的执行,直到QDialog被解雇?

例子:

输出仍然显示“在模态期间见我?” 而在exec();

0 投票
2 回答
582 浏览

c++ - 具有自己的 QTimer 和 QThread 的自定义类

我想为机器人传感器的某些项目创建一个具有自己的 QTimer 和 QThread 的类。经过一番搜索,这就是我想出的

我收到此错误

0 投票
3 回答
3629 浏览

c++ - Qt 如何终止使用 startTimer() API 启动的计时器?

完成后,我会更新倒计时计时器,但timerEvent(QTimerEvent *e)我仍在调用。那么杀死它的正确方法是什么?killTimer(timerID)timerEvent()

编码:


如果有帮助。我有两个这样的计时器在同一个 GUI 线程的两个不同的类中运行。我将如何杀死它?