从终端运行我的 gtk 项目时遇到此错误 python3 myapp.py
,但不是通过 Sublime-Text-3 的 python 构建系统启动我的应用程序时!多么奇怪。
TypeError: Item 0: Must be number, not str
出错的代码本质上是:
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)
最佳答案
正如其他答案(包括您的)所述, style_provider.load_from_data() 需要字节,而不是字符串。
您可以直接将 CSS 定义为字节流,而不是编码您的 unicode 字符串:
css = b"""
#MyWindow {
background-color: red;
...
"""
(注意 b)
关于python-3.x - Gtk.CssProvider.load_from_data TypeError : Item 0: Must be number, not str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27664937/