|
|
1
5
当您单击按钮时
循环将永远运行,因为
QTimer将发出其timeout()信号,但它们将作为事件放置在Qt的事件队列中。只要你
以下是我对如何使其发挥作用的建议: 此代码:
属于MainWindow的构造函数,因为您只想设置一次。当用户第二次、第三次等点击按钮时,没有必要再做一次。
您的代码
那么你的按钮只会起作用
然后例如
当再次点击时。 示例代码:
如果你那样做会发生什么?
当您单击该按钮时
|
|
|
2
2
前言:我不擅长C++,所以我不能提供特定的代码,但我在PyQt方面很有经验
这是Qt新手的一个常见陷阱。你的
你可以在这里做两件不同的事情。第一种是更基本的方法,但可以让您看到更直接的结果。您可以“泵送”事件循环。取决于您的速度
另一种更可取的选择是将捕获循环放入QThread中。当新帧可用时,可以使用帧数据发出信号。该信号将被放入Qt事件循环中,与其他一切一起处理,并且不会阻碍您的GUI。一般来说,这是你想对任何沉重的嘎吱嘎吱声或长时间奔跑的呼叫物采取的方法。 编辑
我刚刚意识到,除了在主线程中执行循环之外,还可以启动一个QTimer。如果你想使用QTimer,并且你的图像处理不太重(每个周期不需要很长时间),那么你应该把所有东西都移到
|