- 论坛徽章:
- 0
|
我的treeview不能显示,不知道是否与类的设计与继承有关系···代码如下:
Gui类:- import gtk
- import pygtk
- class Ui(object):
- def __init__(self,glade_file = None):
- self.init(glade_file)
- #--初始化所需的gtk材料
- def init(self,glade_file):
- gtk.rc_parse_string('''style "default-font"\n{\nfont_name = "simsun 9"\n}\nwidget_class "*" style "default-font"\ngtk-font-name = "simsun 9"''')
- self.builder = gtk.Builder()
- self.ui_file = glade_file or 'itemSearcher.glade'
- try:
- self.gui = self.builder.add_from_file(self.ui_file)
- except Exception,e:
- print "Error:%s"%e
- def _get_widget(self,widget_name):
- return self.builder.get_object(widget_name)
复制代码 pageUI类:- from Gui import Ui
- import gtk
- class pageUi(Ui):
- def __init__(self,entry_name,button_name,other):
- #self.base_class = gui.Gui()
- super(pageUi,self).__init__()
- if not (entry_name and button_name and other):
- raise TypeError,"miss argument or argument is None"
- self.entry = self._get_widget(entry_name)
- self.button = self._get_widget(button_name)
- self.other_widget = self._get_widget(other)
- self.other_widget.show_all()
- def build_model(self,titles):
- if not isinstance(titles,list):
- raise "[titles] must be a list"
- size = len(titles)
- opt = [str for i in range(size)]
- self.list_store = gtk.ListStore(*opt)
- self._set_model(self.list_store)
- self.make_header(titles)
- return True
- def _set_model(self,list_store):
- self.other_widget.set_model(list_store)
- return True
- def make_header(self,titles,tv = None):
- widget = tv or self.other_widget
- cols = widget.get_columns()
- print "tv is %s,widget is %s"%(tv,widget)
- ## if not cols == None:
- ## for col in cols:
- ## widget.remove_column(col)
- index = 0
- for head in titles: #####
- column = gtk.TreeViewColumn(head, gtk.CellRendererText(), text=index)
- column.set_sort_column_id(index)
- widget.append_column(column)
- index+=1
- return False
- class itemPage(pageUi):
- def __init__(self,widget_names = None):
- widget_names = widget_names or ['cb_entry','bt_search','treeview']
- #--call parent init
- super(itemPage,self).__init__(*widget_names)
- #--auto entry
- self.entry_completion = gtk.EntryCompletion()
- self.LS_entry = self._get_widget('LS_entry')
- self.entry_completion.set_model(self.LS_entry)
- self.entry_completion.set_text_column(0)
- self.entry_completion.set_inline_completion(1)
- #--combox
- self.combox = self._get_widget('cb_item_type')
- cell = gtk.CellRendererText()
- self.combox.pack_start(cell, True)
- self.combox.add_attribute(cell, 'text', 0)
- #--history
- self._build_history()
- #--redefine entry
- self.entry = self.entry.child
- def _build_history(self):
- self._get_widget('hpaned').set_position(470)
- self.TV_history = self._get_widget('TV_history')
- self.LS_history = gtk.ListStore(str,str)
- self.TV_history.set_model(self.LS_history)
- self.make_header([u'名称','ID'],self.TV_history )
- print "TV:history:",self.TV_history
- class duanzaoPage(pageUi):
- def __init__(self,widget_names = None):
- widget_names = widget_names or ['en_duanzao','btn_duanzao_gen','TA_duanzao']
- super(duanzaoPage,self).__init__(*widget_names)
- self.btn_copy = self._get_widget('btn_duanzao_copy')
- self.TB_duanzao = self._get_widget('TB_duanzao')
复制代码 运行效果图:
---------------------
正确效果图:
|
|