求教onbutton触发显示进度条该如何配置?
各位大侠好,小弟想实现按钮触发进度条显示,通过参考example,得出一下程序,刚学的RTGUI,请各位高手指点一下。以下程序问题一:进度条不走
问题二:在原有界面的上面弹出一条进度条,其他的不显示
可能我对GUI的各个结构还不是很了解,正在研究中。请帮忙解答一下,谢谢了。
static void demo_view_progressbar(rtgui_widget_t* widget, struct rtgui_event* event)
{
rtgui_workbench_t *workbench;
rtgui_view_t *view;
rtgui_rect_t rect;
rtgui_label_t *label;
/* 获得顶层的workbench */
workbench = RTGUI_WORKBENCH(rtgui_widget_get_toplevel(widget));
rtgui_widget_get_rect(RTGUI_WIDGET(workbench), &rect);
/* create a demo view */
view = demo_view(workbench, "ProgressBar View");
/* get demo view rect */
demo_view_get_rect(view, &rect);
label = rtgui_label_create("水平进度条:");
rtgui_container_add_child(RTGUI_CONTAINER(view), RTGUI_WIDGET(label));
rect.x1 += 5; rect.x2 -= 5;
rect.y1 += 5; rect.y2 = rect.y1 + 18;
rtgui_widget_set_rect(RTGUI_WIDGET(label), &rect);
rect.y1 += 20; rect.y2 = rect.y1 + 18;
hbar = rtgui_progressbar_create(RTGUI_HORIZONTAL, 100, &rect);
rtgui_container_add_child(RTGUI_CONTAINER(view), RTGUI_WIDGET(hbar));
bar_timer = rtgui_timer_create(50, RT_TIMER_FLAG_PERIODIC,
progressbar_timeout, RT_NULL);
rtgui_timer_start(bar_timer);
/* 删除 文件列表 视图 */
rtgui_view_destroy(RTGUI_VIEW(view));
rtgui_view_show(_view, RT_FALSE);
} 你的onbutton函数在哪里? 回复【1楼】ffxz
-----------------------------------------------------------------------
ffxz老大,我是放在demo_button_view里面,就是button的那个例子。
请老大赐教,谢谢了。
本人刚接触RTT,新手,越研究越觉得RTT有意思,是一个很好的东西。但是可能
是本人能力有限,只能先研究一段时间,才能慢慢上手,而不是拿来就用。不过我想
随着RTT的发展完善,会有更详尽的文档,让我们这些新手更好的入门,期待新的“编
程手册”了。
给为中国开源事业做无私贡献的工程师们致敬了。 原来的GUI demo中,显示进度条,并走,依靠的是一个定时器,当定时器超时时,更改进度条的当前值。
你的第二个问题看不太懂:
例如程序中为什么会有
rtgui_view_destroy(RTGUI_VIEW(view));
如果有这个,view就会被删除了。 回复【3楼】ffxz
-----------------------------------------------------------------------
ffxz老大,下面的算是定义和调用了定时器吗?
不好意思,可能问的问题有点弱,但是急用,谢谢了哈。
void progressbar_timeout(struct rtgui_timer* timer, void* parameter)
{
static rt_uint32_t value = 0;
value ++;
if (value == 100) value = 0;
rtgui_progressbar_set_value(hbar, value);
rtgui_progressbar_set_value(vbar, value);
}
bar_timer = rtgui_timer_create(50, RT_TIMER_FLAG_PERIODIC, progressbar_timeout, RT_NULL);
rtgui_timer_start(bar_timer); 自己顶一下,请能人解答。。。谢谢啦。
还有在一个子view,要回到父view需要什么函数?
view = RTGUI_VIEW(widget->parent);
workbench = RTGUI_WORKBENCH(RTGUI_WIDGET(view)->parent);
是这两个嘛? 有没有人给我解答一下,谢谢啊。急用!!!
页:
[1]