0
有人可以告诉我为什么当我尝试在其中一列中添加浮点数时,此示例不起作用?Gtk Treestore中的浮点数:小数点逗号/点的i18n
它产生一个类型的错误(类型错误:必须是数,而不是str的)在底部(self.liststore path =数)的行。
编辑:我把范围缩小。我的操作系统使用逗号(3,2)显示浮点数,但python使用小数点(3.2)作为小数点。代码中有一个简单的解决方案,它允许程序在任一操作系统设置上工作?
from gi.repository import Gtk
class CellRendererTextWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="CellRendererText Example")
self.set_default_size(200, 200)
self.liststore = Gtk.ListStore(str, float)
self.liststore.append(["Measurement 1", 3.2])
self.liststore.append(["Measurement 2", 2.0])
self.liststore.append(["Measurement 3", 4.75])
treeview = Gtk.TreeView(model=self.liststore)
renderer_text = Gtk.CellRendererText()
column_text = Gtk.TreeViewColumn("Text", renderer_text, text=0)
treeview.append_column(column_text)
floatrenderer = Gtk.CellRendererText()
floatrenderer.set_property("editable", True)
column_editabletext = Gtk.TreeViewColumn("Value",
floatrenderer, text=1)
treeview.append_column(column_editabletext)
floatrenderer.connect("edited", self.text_edited)
self.add(treeview)
def text_edited(self, widget, path, number):
self.liststore[path][1] = number
win = CellRendererTextWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
原来的例子来自:http://python-gtk-3-tutorial.readthedocs.org/en/latest/cellrenderers.html#cellrenderertext