gpt4 book ai didi

c++ - 如何停止和启动 QT 中的循环?

转载 作者:太空狗 更新时间:2023-10-29 20:40:20 25 4
gpt4 key购买 nike

我一直在想办法让程序在 for 循环中停止并等待按钮被点击并且 for 循环继续。

有没有像QSystem.stop()这样简单的方法来停止循环?并在按钮点击功能中 QSystem.star()循环继续。

在 C++ 中你可以使用 system("pause")或者程序在您使用 cin<< 时停止.但我如何在 QT 中执行此操作?

最佳答案

由于用户界面需要它的代码来运行,如果你暂停事件循环(这也意味着从事件循环中调用的任何函数都是阻塞的,等待某个事件),你也会暂停用户界面,这意味着单击进入窗口将不会被处理。这就是为什么在基于事件的编程中(所有 UI 工具包所做的),必须尽快返回到主事件处理程序循环。

您可以做的是创建第二个线程并等待条件变量。 GUI 线程可以在按钮单击事件槽中向该条件变量发出信号。

In C++ you could use system("pause") or the program stopped

正是:程序停止了。这意味着它不会从操作系统中获取事件。但是从标准输入接收数据不是事件。它在流式 I/O 上阻塞。图形用户界面是基于事件的。

请注意,从概念上讲,想出一个用户界面来提供流式 I/O channel 并非不可能。但是,这在单线程程序中不起作用。您需要并行执行(协程、线程等)才能使这样的概念发挥作用。

关于c++ - 如何停止和启动 QT 中的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24549894/

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