如何限制要在Gtk CellRendererText中显示的小数位数

tob*_*n9e 1 cellrenderer pygobject gtk3

我试图限制Gtk.CellRendererText中显示的小数位数。目前,浮点数字段显示为6个小数位,但我希望只有1个。

在此处输入图片说明

此测试代码应在Linux上运行:

#!/usr/bin/python3
from gi.repository import Gtk

class MyWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="Hello World")
        self.set_default_size(200, 200)

        self.liststore = Gtk.ListStore(float)
        treeview = Gtk.TreeView(model=self.liststore)

        self.liststore.append([9.9])
        self.liststore.append([1])

        xrenderer = Gtk.CellRendererText()
        xrenderer.set_property("editable", True)
        xcolumn = Gtk.TreeViewColumn("Float Numbers", xrenderer, text=0)
        xcolumn.set_min_width(100)
        xcolumn.set_alignment(0.5)
        treeview.append_column(xcolumn)

        self.add(treeview)

win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
Run Code Online (Sandbox Code Playgroud)

lyn*_*gvi 6

跳过同样的问题。基本上,您要做的就是使用GtkTreeViewColumn的set_cell_data_func设置呈现功能,该功能会更改单元格的“文本”属性。就您的示例而言,尝试添加以下行:

xcolumn.set_cell_data_func(xrenderer, \
    lambda col, cell, model, iter, unused:
        cell.set_property("text", "%g" % model.get(iter, 0)[0]))
Run Code Online (Sandbox Code Playgroud)

参考文献: