我已阅读this question但其答案对我不起作用,所以这不是重复的。
这个问题发生在我所拥有的项目中,我基本上将GUI模块和主模块分开了。从主模块我初始化GUI,它应该依次创建状态图标(即设置它的图标和标题),但尽管我的努力,它的标签总是读取python脚本的名称。
项目的错误代码类似于以下内容:
import gtk
class Main:
def __init__(self):
self.statusicon = gtk.StatusIcon()
self.statusicon.set_from_icon_name('call-end-symbolic')
self.statusicon.set_title('Title reads')
self.cb = gtk.combo_box_new_text() # Faulty line
gtk.main()
if __name__ == '__main__':
instance = Main()
看起来很荒谬,通过删除“错误的行”,代码完美地工作,即标题设置。但是,如果没有删除该行,则不会设置标题,并且脚本名称仍为标题。
我阅读了PyGTK文档,它说gtk method called in the faulty line is deprecated - 我应该使用gtk.ComboBoxText()
代替;但是,我在gtk.ComboBoxText
模块中找不到gtk
:
>>> dir(gtk.ComboBoxText)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'ComboBoxText'
我想这个问题比错误报告更需要一个错误报告,但如果我错了,请纠正我。