gpt4 book ai didi

c++ - Qt 小部件在某些情况下无法重新绘制

转载 作者:可可西里 更新时间:2023-11-01 10:50:08 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,一个小部件长时间无法重新绘制。

我有一个非 Qt 线程播放音频并根据音频播放位置定期向我的 GUI 线程发送自定义事件。 GUI 线程通过生成一些视觉反馈(例如,在小部件顶部显示标签)并在其自身上调用 repaint() 来使用react。这在 Mac OSX 上运行良好,在我拥有的单元测试应用程序中运行良好,该应用程序在 Windows(XP 和 7)上运行该功能,但是,该小部件在我的真实应用程序(在 Windows XP/7 上)无法正确重绘,直到音频播放结束。

在 OSX 和我的单元测试中观察到的正确行为:

-> Custom Event
-> QEvent::Paint (12)
-> Custom Event
-> QEvent::Paint (12)
etc.

在我的实际应用中观察到的错误行为:

-> Custom Event 
-> QEvent::UpdateRequest (77)
-> Custom Event
-> QEvent::UpdateRequest (77)
etc.
-> QEvent::Paint (12)

我尝试了各种方法来强制进行重绘,例如 QCoreApplication::processEvents,但都无济于事。我还尝试消除线程间事件作为罪魁祸首,并使用周期性计时器从 GUI 线程轮询当前音频位置并更新小部件,同样没有太多运气。

如果您有任何关于如何进一步诊断此问题的想法,我们将不胜感激!

最佳答案

您是否尝试过直接调用绘画事件处理程序?即 paintEvent(NULL)?

关于c++ - Qt 小部件在某些情况下无法重新绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7185078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com