我正在编写一个程序,它有一个Settings
类来管理程序中的设置。其中有一个SettingDialog
函数显示选项窗口和lang_register
函数,它可以执行其他操作。但是,当我在主窗口中调用SettingDialog
函数时,它表示该类是ImageMenuItem
对象,并且它没有属性lang_register
。但是如果我手动调用SettingDialog
函数并打印它的类,它会说它是Settings
类,这是我的预期。谁能告诉我发生了什么?代码是dropify。错误发生在第110行。非常感谢。
编辑: 我会添加一些问题的详细信息。
我在SettingDialog
函数的开头添加一行,如下所示:
print(type(self))
这样它应该输出函数类的类型。当我尝试访问GUI中的选项窗口,从而调用该函数时,它输出:
<class 'gi.repository.Gtk.ImageMenuItem'>
错误:
Traceback (most recent call last):
File "./GtkEncrypter.py", line 110, in SettingDialog
eng.connect("toggled", self.lang_register, self)
AttributeError: 'ImageMenuItem' object has no attribute 'lang_register'
这很奇怪,因为班级的标题如下:
class Settings():
并且GUI仅在SettingDialog
函数
然后,我尝试手动调用该函数,因此我添加一行:
Set.SettingDialog()
之后
Set = Settings()
所以输出如下:
<class '__main__.Settings'>
我还检查了我的函数定义,标题是:
def lang_register(self, widget):
并且第一个参数是self
,它应该将函数添加到类中。