[英]ProgressBar with Gtkmm in c++
您好,我知道如何使用Gtkmm创建一个progressBar。 我也知道一个按钮,例如,当我单击该按钮时,progressBar如何增加10%。 但是我不知道如何实现一个progressBar,它会自动增加,我的意思是这样的:
for(int i = 0; i<=10; i++){
double percentage(progressBar.get_fraction() + 0.1);
progressBar.set_fraction(percentage);
getchar();
}
但是我看不到什么时候progressBar会增加...我只是看什么时候progressBAr已满...
谢谢您的帮助 !
当您要使用应该实际更改其外观的进度条(或微调器等)时,需要确保主线程有一些时间来相应地更新UI。
如果主线程中有一个循环设置新值并在getchar()
阻止该线程,则该线程将无法更新UI来反映任何小部件的新状态。
要查看更新,您应该在其他线程中移动调用getchar
的循环,并且仅在主线程中执行gtk_*
函数调用。 这可以通过g_idle_add()
插入更新函数来g_idle_add()
。
然后,可以在线程被阻止时更新UI。
如果将getchar
替换为需要花费一些时间的其他操作,则该其他活动还将阻止线程更新UI,除非您将其移动到其他线程中。
您可能还会考虑其他机制,以在更新小部件的状态之间将控制权返回给主线程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.