gpt4 book ai didi

c++ - C++ 中的 Gtkmm 进度条

转载 作者:行者123 更新时间:2023-11-30 16:43:01 24 4
gpt4 key购买 nike

您好,我知道如何使用 Gtkmm 创建进度条。我还知道,当我点击按钮时,进度条会增加 10%。但我不知道如何实现自动增加的进度条我的意思是这样的:

for(int i = 0; i<=10; i++){

double percentage(progressBar.get_fraction() + 0.1);
progressBar.set_fraction(percentage);
getchar();
}

但是我看不到进度条何时增加...我只看到进度条何时满...

感谢您的帮助!

最佳答案

当您想要使用实际更改其外观的进度条(或微调器等)时,您需要确保主线程有一些时间来相应地更新 UI。

如果主线程中有一个循环设置新值并阻塞 getchar() 中的线程,则该线程无法更新 UI 以反射(reflect)任何小部件的新状态。

要查看更新,您应该将调用 getchar 的循环移动到其他线程中,并仅在主线程中执行 gtk_* 函数调用。这可以通过 g_idle_add() 排队更新函数来实现。

然后,当您的线程被阻塞时,UI 可以更新。

如果您将 getchar 替换为需要一些时间的其他操作,则该其他事件也会阻止线程更新 UI,除非您将其移动到其他线程中。

您可能还会考虑其他机制,以便在更新小部件状态之间将控制权返回给主线程。

关于c++ - C++ 中的 Gtkmm 进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45587310/

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