星期六, 五月 19, 2007

gtk的default widget

gtkWindow的default widget和Windows下作用一样,是用来接管回车键的。但在细节上有很多和Windows下不一样:
- 在代码里可以用set_default去设置default widget(不一定是按钮,也可以是其他widget),也可以在glade里面设置这个widget的has_default为True,还可以通过 gtkDialog的set_default_response去按response设置,几者是等价的。
- 从显示上我们可以很容易看出哪个控件是default,当然这和theme有关,对于Ubuntu缺省的Theme,default按钮上会套一层黄色的边框,随着focus的移动,这个黄色的边框也会移动(因为有时focus到一个别的按钮上,它会接管回车),总之这个黄色的边框套在哪里,哪个控件就处理回车,很直观。
- 控件能不能成为default的,还要取决于控件的一个can_default选项,如果不设置这个选项为true,调用set_default就会失败。
- 有些控件在获得焦点时,回车可能会自己处理,这样就不能激活default按钮了,典型的就是输入框gtkEntry,不过gtkEntry提供了选项可以设置这种行为,允许回车激活default,在glade下只要设置按钮的"Activates Default"为True就可以了。

总的来看还是比较清晰,最后一条曾经害的我翻遍了手册。

0 Comments:

发表评论

<< Home