如何更改gtk.spinbutton中的显示
我有一个gtk.spinbutton,我想根据语言环境设置数字 格式。 比如说,我安装了匈牙利语,所以我的小数分隔符是 “.”(点)和千位分隔符是“,”(逗号)例如:我的spinbutton值是 1131191所以在用户焦点离开gtk.spinbutton后,我的值应该 转换为11311.91。转换由我完成,但我无法设置 使用set_text/set_value方法将其转换为gtk.spinbutton 感谢您的帮助如何更改gtk.spinbutton中的显示,gtk,spinner,Gtk,Spinner,我有一个gtk.spinbutton,我想根据语言环境设置数字 格式。 比如说,我安装了匈牙利语,所以我的小数分隔符是 “.”(点)和千位分隔符是“,”(逗号)例如:我的spinbutton值是 1131191所以在用户焦点离开gtk.spinbutton后,我的值应该 转换为11311.91。转换由我完成,但我无法设置 使用set_text/set_value方法将其转换为gtk.spinbutton 感谢您的帮助 谢谢可以通过处理信号来设置旋转按钮的格式 如果您还想让用户以本地化格式输入值(
谢谢可以通过处理信号来设置旋转按钮的格式 如果您还想让用户以本地化格式输入值(例如,让用户键入“1000”而不是“1000”),请处理信号 (这段代码比应该的要长,因为PyGTK没有正确包装输入,因此出现了ctypes hack。它只是解析文本,然后将数值分配给指针位置。) 信用:ctypes hack和digits格式的灵感来自PyGTK邮件列表
locale.setlocale(locale.LC_ALL, '')
def output(spin):
digits = int(spin.props.digits)
value = spin.props.value
text = locale.format('%.*f', (digits, value), True)
spin.props.text = text
return True
spin.connect('output', output)
def input(spin, new_value):
text = spin.props.text
try:
value = locale.atof(text)
except ValueError:
return -1
p = ctypes.c_double.from_address(hash(new_value))
p.value = value
return True
spin.connect('input', input)