Tho*_*ner 4 pygtk python-3.x gtk3
当我从终端运行我的 gtk 项目时出现这个错误python3 myapp.py,但在通过 Sublime-Text-3 的 python 构建系统启动我的应用程序时没有!多么奇怪。
TypeError: Item 0: Must be number, not str
Run Code Online (Sandbox Code Playgroud)
出错的代码本质上是:
color_scheme = {'fg_color':'#ffffff', 'bg_color': '#000000',}
css = """
GtkLabel {
color: %(fg_color)s;
background: %(bg_color)s;
}
"""
# ...
cssprovider = Gtk.CssProvider()
css_data = css % color_scheme
cssprovider.load_from_data(css_data)
Run Code Online (Sandbox Code Playgroud)
小智 6
正如其他答案(包括您的)所述, style_provider.load_from_data() 需要字节,而不是字符串。
您可以直接将 CSS 定义为字节流,而不是编码您的 unicode 字符串:
css = b"""
#MyWindow {
background-color: red;
...
"""
Run Code Online (Sandbox Code Playgroud)
(注意 b)
我能够从谷歌中挖掘出这个: https://bugs.debian.org/cgi-bin/bugreport.cgi? bug=698459
\n\n\n\n\n乔瑟兰·穆埃特 [2013-01-19 11:55 +0100]:
\n\n\n\n\nLe vendredi 2013 年 1 月 18 日 \xc3\xa0 21:10 +0000,Tony Houghton a \xc3\xa9crit :
\n\n\n\n\n类型错误:项目 0:必须是数字或单字节字符串,而不是 str
\n好吧,如果 Python 想要一个字节字符串,请向其发送一个字节字符串,而不是 \n unicode 字符串。\n 也就是说,b"""blah blah blah"""。
\n确实,关门了。或者,如果您有一个(unicode)字符串,您也可以对其调用 .encode() 将其转换为字节数组。
\n\n马丁
\n
第一次尝试使用bytes(css_data) 没有成功,但是
css_data.encode()\nRun Code Online (Sandbox Code Playgroud)\n\n成功了!
\n| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |