当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 【pygtk】部分组件不能显示
帖子发表于 : 2012-01-10 13:33 

注册: 2008-02-20 11:46
帖子: 84
送出感谢: 0 次
接收感谢: 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')

复制代码
运行效果图:
图片
---------------------
正确效果图:
图片


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 【pygtk】部分组件不能显示
帖子发表于 : 2012-01-30 21:46 

注册: 2008-02-20 11:46
帖子: 84
送出感谢: 0 次
接收感谢: 0 次
怎么没人?


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 【pygtk】部分组件不能显示
帖子发表于 : 2012-01-30 21:49 
头像

注册: 2010-06-16 1:05
帖子: 14668
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
:em06 正在学,两年后帮你解答 :em09


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 【pygtk】部分组件不能显示
帖子发表于 : 2012-01-30 22:09 

注册: 2008-02-20 11:46
帖子: 84
送出感谢: 0 次
接收感谢: 0 次
怎么没人?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 0 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译