问题标签 [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.
python - 迭代调用函数时 QtCore.QTimer.singleShot 滞后
我有一些文本显示的 pyqt gui,这些文本显示通过函数 updateTelemetry() 定期更新
这是我的代码的工作原理。当用户点击按钮时, buttonHandler 被调用。每 10 秒迭代调用一次 updateTelemetry。:
这种方法有效,让我每 10 秒左右获得一次更新。但是,每隔 10 秒,整个 gui 会冻结几秒钟,然后更新。我正在做的事情似乎正在阻止。我不确定这是怎么回事。我以为 qtimer.singleshot 会创建一个单独的线程?
有没有更好的方法来做我正在做的事情?
python - 如何将 QTimer 与 QWidget 一起使用(如果可能)
我需要一些帮助来弄清楚如何在小部件类下创建计时器。我有以下课程:
我正在尝试如下实现一个计时器:
它调用以下内容:
这个 QWidget 是从我的 MainWindow 调用的,我有另一个计时器可以正常工作,如上所示的 MainWindow,但我不知道如何让它与 QWidget 一起工作。我认为使用 QWidget 是问题所在,因为当我尝试运行它时出现以下错误:
AttributeError:“MainWindow”对象没有属性“_TimerClass__Time”
谁能告诉我我做错了什么或者正确的做法是什么?
python - PYQT QTimer 未进入处理程序定义
我有以下代码在我的主窗口中工作,但我需要在弹出窗口中复制它。运行时它不会进入处理程序 def,我不知道为什么。我已经尝试了我能想到的一切。有人可以告诉我我做错了什么吗?
python - 无法访问子窗口中的“def”-“MainWindow 对象没有属性‘updateTime’”
我有一个 MainWindow,我从按钮调用子窗口(弹出窗口),我无法访问 def updateTime(self),它给了我一个属性错误:
AttributeError:“MainWindow”对象没有属性“updateTime”
如果我取出 MainWindow 部分,它工作正常,所以我真的不明白问题是什么。任何帮助将不胜感激。
c++ - 非单次 QTimer 只倒计时一次
编辑3:当我第一次问这个问题时,我认为这是因为QTimer
只触发了一次;然而事实证明,这是因为我是根据它的remainingTime()
成员来观察它的。事实证明,真正的问题是只remainingTime()
倒计时0
一次(并且timeout()
信号确实是多次触发)。
我有一个单线程 Qt 应用程序,它有一个需要重复调用的计时器。我还有一个进度条来显示主计时器还剩多少时间,并且进度条每 40 毫秒由另一个计时器更新一次。
目前,主定时器设置为 15 秒(15 x 1000 = 15000 毫秒),但定时器仅触发其QTimer::timeout()
事件一次。之后,remainingTime()
总是返回0
,即使isActive()
返回true
。(也isSingleShot()
返回false
。)
下面是相关代码:
奇怪的是,我知道这timer_updateProgress
确实有效(因为我可以看到进度条正在更新),并且它的初始化方式基本相同......
编辑:澄清一下,我确信我的所有其他逻辑都正常运行,因为我可以在调试器中看到:
timer_capture.isSingleShot()
是false
timer_capture.remainingTime()
是0
timer_capture.isActive()
是true
- 所有计算结果都是正确的(例如
time_passed
)
而且我还可以看到倒计时工作一次然后停止。
编辑2:我在末尾添加了以下代码以update_progress()
进一步说明正在发生的事情:
我得到的输出是:
(无限)
c++ - 主窗口关闭时 QApplication 不退出
我有一个 QMainWindow 用于浏览和查看图像。这些图像是使用我编写的包装器读取的特殊医学图像。
GUI 左侧有一个 QListview,它显示缩略图列表。当用户选择其中之一时,QVTKWidget 会在右侧显示相应的图像。我使用 vtkRenderWindowInteractor 来操作显示的图像。
我的主要看起来如下:
我的 closeEvent 如下所示:
问题是当我关闭 QMainWindow 时,应用程序不会终止。那就是命令提示符保持打开状态并且不会出现按任意键继续。如果我 Ctrl+break,则应用程序退出(显然)但我收到以下消息:
QObject::~QObject: 定时器不能从另一个线程停止
我注意到,如果我只选择一个缩略图并将其显示在 QVTKWidget 中,程序就会正常终止。但是当我选择一个缩略图,显示它然后选择另一个缩略图时,当我关闭窗口时程序不会终止。
我想知道是否有人可以告诉我我在这里做错了什么。我很乐意复制/粘贴更多代码,但目前我不确定哪些部分是相关的。
我已阅读以下内容希望得到答案,但到目前为止我一直无法解决此问题:
即使在 MainWindow 关闭后,Qt 应用程序仍保留在内存中
谢谢
qt - 避免 QTimer 发出超时信号
我已经启动 Timer 以等待某些条件为真。如果条件为真,那么我停止计时器并且不希望超时信号发出或执行连接的插槽。但是如果在指定时间内条件为假,则可以发出信号 timeout()。但无论如何它总是发出超时信号。我也使用了 blockSignals ( true ),但它不起作用。有人可以给我建议。
同样在 timerStop 函数中,我试图发出被破坏的信号,但我得到的响应是它无法连接。请给我建议。
c++ - QTimer 插槽没有被调用
我有一个QTimer
在MainWindow
课堂上,但update
插槽没有被调用。我是 QT 的新手。我不知道会是什么。connect()
返回true
,我既没有收到来自 QT 创建者的消息窗口的警告,也没有收到运行时错误。它只是行不通。
c++ - QTimer setInterval 不重置剩余时间
我有一个用 QT 编写的应用程序,它使用 QTimer。它基本上是一个游戏,所有动作都由计时器控制。游戏包括增加\降低游戏速度的能力。提高速度的代码是
speedUpValue
并且maxSpeed
是常数。几乎相同的代码用于降低速度。问题在于setInterval
重置内部计时器,因此如果您继续快速增加或减少速度游戏最终将永远不会继续,因为remainingTime
它会不断被重置。有没有办法remainingTime
手动设置或更改间隔而不重置它?
c++ - 为什么 QTimer 不是异步的?
我试图QTimer
在我的窗口小部件上使用一个简单的对象,以便我可以计算一个方法完成所花费的时间。但令我惊讶的是,计时器在方法完成执行之前被阻塞了!即当有问题的方法结束时,计时器开始计时!
这是一个示例代码来演示我写的内容:
这是cpp文件:
我怎样才能获得异步行为,就像我们在 C# 中所拥有的那样,即 Timer 运行自己的执行线程?
更新:
感谢您的澄清,现在我如何将 Qthreads 与计时器合并,我是否必须从 Qthreads 继承并在我的子类中使用计时器,还是必须从 QTimer 继承并在其中执行一个线程!真的很混乱!