tiancaigao7 发表于 2011-12-18 13:50:41

rtGUI 中button事件的问题

我现在对应收音机项目和RTT例程中的GUI例子学习GUI,今天发现botton中有一个rtgui_button_set_onbutton函数可以将按键和对应的事件回调函数绑定。我的理解就是调用他之后,再单击这个botton就会自动调用对应的回调函数,不知道我的理解对不对。
而后来我看收音机的程序,发现其中并没有通过这种方法来绑定按键的回调函数,而是通过在home_view_event_handler事件函数中读取触摸屏的坐标,然后根据坐标判断到底是触摸了那个按键,然后再分别去掉用各自的按键回调函数。我感觉上面这个过程更加合理。我这里不理解为什么这里不使用rtgui_button_set_onbutton这个函数直接绑定呢?是不能在触摸屏里面使用吗?
另外,我发现使用rtgui_button_set_onbutton函数绑定的例子里面并没有调用botton的事件处理函数,是不是使用这个函数绑定之后就不需要在调用botton的even_handler函数了?另外使用这个函数是如何根据触摸屏的坐标来判断到底是按动了那个键?

fgcx 发表于 2011-12-19 08:36:20

好像 是两类按键不同的。 一类是pushbutton,一类是button.

tiancaigao7 发表于 2011-12-19 09:05:22

应该不是,rtgui_button_set_onbutton方法应该是对于所有的botton都有效。

tiancaigao7 发表于 2011-12-19 13:34:14

已经解决了,刚才咨询了老大,得到答复:在触摸屏上创建N个botton之后,给每个botton利用set_onbutton绑定回调函数,之后系统会自动筛选消息里面坐标符合对应的botton范围的消息,一旦有这个消息就会自动调用之前绑定的回调函数,不再需要通过even_handler函数来读取坐标值,然后在根据坐标值人工判断那个按键被按下。
因此使用botton的时候使用这个函数很方便,只需要绑定回调函数,剩下的事情就使系统搞定了。

marrylilili 发表于 2011-12-19 22:18:53

学习了

shuidiyu 发表于 2012-9-14 15:02:47

{:mad:}{:cry:}

爱学习的妞 发表于 2012-10-10 15:51:51

嘿,那触摸屏位置的按键判断,通常是什么时候用呢?

gosman 发表于 2013-3-19 17:10:42

请问楼主:怎么将这个触摸屏和button结合起来??也得通过操作系统控制触摸屏这个事吗?我刚接触RTT,还不是很明白怎么回事。希望楼主指点一下。
页: [1]
查看完整版本: rtGUI 中button事件的问题