LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 554|回复: 1

关于ComboBoxEntry的历史记录

[复制链接]
发表于 2009-4-20 02:50:18 | 显示全部楼层 |阅读模式
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import gtk, gobject
  4. class Demo(gtk.Window):
  5.     def __init__(self):
  6.         gtk.Window.__init__(self)
  7.         self.connect('destroy', lambda *w: gtk.main_quit())
  8.         self.set_border_width(5)
  9.         self.hbox = gtk.HBox(False, 2)
  10.         self.add(self.hbox)
  11.         self.find_combo_box_entry = FindComboBoxEntry()
  12.         self.hbox.pack_start(self.find_combo_box_entry)
  13.         self.find_button = gtk.Button('_Find', gtk.STOCK_FIND, True)
  14.         self.find_button.connect('clicked', self.get_find_text)
  15.         self.hbox.pack_start(self.find_button)
  16.         self.show_all()        
  17.       
  18.     def get_find_text(self, widget):
  19.         keyword =  self.find_combo_box_entry.get_child().get_text()
  20.         self.find_combo_box_entry.add_history(keyword)
  21.         print keyword
  22.       
  23.       
  24. class FindComboBoxEntry(gtk.ComboBoxEntry):
  25.     def __init__(self):
  26.         gtk.ComboBoxEntry.__init__(self)
  27.         self.model = self.__create_model()
  28.         self.set_model(self.model)
  29.       
  30.     def __create_model(self):
  31.         model = gtk.ListStore(str)
  32.         return model
  33.       
  34.     def add_history(self, data):        
  35.         model = self.get_model()
  36. #            iter = model.get_iter((0,))
  37. #            print model.get_value(iter, 0)
  38.         model.append([data])
  39.         #self.model.clear()
  40.         self.set_model(model)
  41.         #self.append_text(data)
  42. def main():
  43.     Demo()
  44.     gtk.main()
  45. if __name__ == '__main__':
  46.     main()
复制代码

理论上更改了模型,然后设置模型,那么视图应该也会被动更新
事实是
def add_history(self, data):
函数无法工作……
发表于 2009-4-22 04:23:18 | 显示全部楼层
self.set_text_column(0)

如果想簡單點的話,可以直接用 gtk_combo_box_entry_new_text / gtk_combo_box_append_text
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表