Gtk发出警告且不显示我的菜单项

0 投票
1 回答
573 浏览
提问于 2025-04-17 20:05

这段 Python 代码:menu_item = gtk.MenuItem("après") 会出现一个警告信息:Gtk warning Invalid input string,而且菜单项没有显示出来。那我应该添加或修改什么才能让这个菜单项显示出来呢?

1 个回答

1

你的编辑器很可能在用其他编码格式保存源文件,比如 Latin-1 或 Windows-1252,而 GTK 需要的是 UTF-8 编码。你可以试试把 "après" 替换成 u"apr\u00e8s".encode("utf-8")。如果这样能正常工作,那问题就出在这里。

要正确解决这个问题,你需要:

  • 在 Python 中声明编码,使用 # -*- coding: utf-8 -*-
  • 确保你的编辑器是用声明的编码格式保存文件。如果有必要,可以用十六进制编辑器来确认这一点。
  • 对于非 ASCII 字符串,使用 Unicode 字符串字面量,也就是用 u"après" 而不是 "après"。如果不接受 Unicode 字符串,可以用 u"après".encode("utf-8")。一般来说,PyGTK 是支持 Unicode 字符串的,所以不需要特别编码成 UTF-8。

撰写回答