- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 gtkProgressBar
添加到我为 R 脚本创建的小界面(使用 RGtk2
包)。
如果我做一些简单的事情,比如:
for (i in 1:50)
{
gtkProgressBarSetFraction(progress, i/50)
Sys.sleep(1)
}
一切运行顺利,栏每秒更新一次。
但是,当我转到我的实际代码时,我有一个循环,我在其中执行类似的操作
for(i in 1:1000)
{
gtkProgressBarSetFraction(progress, i/1000)
#do some heavy computation here
}
这里的问题是界面“卡住”并且进度条仅在循环结束时更新,因此完全无法使用...
我在这里遗漏了什么吗?如何定期“唤醒”界面以使其刷新?
谢谢妮可
编辑:好的,我解决了问题,但我仍然不明白发生了什么。我在 gtkProgressBarSetFraction
之后添加了一个 Sys.sleep
调用,现在界面更新愉快。为了减少“浪费时间”,我只是做了 Sys.sleep(0.0001)
(所以对于 1000 个周期,我只会多出约 0.1-1 秒的计算时间,这是可以接受的)。任何人都可以解释为什么会发生这种情况?
最佳答案
处理一个事件:gtkMainIterationDo(FALSE)
。处理所有未决事件:while(gtkEventsPending()) gtkMainIteration()
.
由于 R 和 Gtk 事件循环交互的方式,需要此代码 - 在每一点,R 或 Gtk 都处于控制之中,并且需要手动将控制权移交给另一个。 Sys.sleep
是一种方法,这些 RGtk2 特定功能是另一种方法。
关于r - RGtk2 中的 gtkProgressBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820402/
我不能在循环中简单地调用gtk_progress_bar_set_fraction,因为在循环结束之前它不会产生任何影响。 如果我使用 gtk_main_iteration(); 强制 main 沿着
我正在尝试将 gtkProgressBar 添加到我为 R 脚本创建的小界面(使用 RGtk2 包)。 如果我做一些简单的事情,比如: for (i in 1:50) { gtkPro
我无法使用 CSS 更改 GtkProgressBar 中进度元素的颜色。我尝试了不同的组合来引用此进度条,如下所示,但无济于事。我附上了一个最小示例 C 程序、Glade 文件和 CSS 文件,其中
我有一个 GTK 应用程序,它依赖于脉冲 GtkProgressBar 来通知用户程序正在运行。此操作在 Ubuntu 16.04(GTK 版本 3.20.8)上完美运行,但我注意到脉冲在 Ubunt
我是一名优秀的程序员,十分优秀!