繁体   English   中英

C ++中具有Gtkmm的ProgressBar

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM