【发布时间】:2021-07-19 22:56:38
【问题描述】:
我正在使用运行 rhel8 的 Python 3 和 GTK 3 移植一个使用 Python 2.7 和 Gtk 2 的脚本。
运行脚本报错:'X'对象没有属性'window',以前版本的python和gtk没有报错。
class XWindow(Gtk.Window):
def __init__(self, wtype = Gtk.WindowType.TOPLEVEL):
Gtk.Window.__init__(self, wtype)
class X(XWindow):
def __init__(self, vpos, mgr):
XWindow.__init__( self )
...
...
...
def XFunction:
if self.window:
...
...
self.window.property_change(...)
【问题讨论】:
-
error
'X' object has no attribute 'window'并不意味着它已被弃用 - 它仅意味着window不存在 - 并且它可能从未存在于GTK 3中。GTK 3和GTK 2可能有完全不同的代码,有时你无法比较它们。 -
我不知道
self.window应该是什么——但对我来说self已经是window(Gtk.Window)。你试过if self: self.property_change(...)。或者你可能忘记在课堂上的某个地方X去做self.window = SomeOtherWindow() -
self.propery_change抱怨property_change也不存在。在移植我的脚本之前,我不必明确声明self.window = anything。它似乎知道引用自己,我想我的问题是如何引用创建窗口对象时隐式创建的窗口? -
@furas 忘记标记
-
更好地展示在 Python 2 中工作的原始代码。
标签: python python-3.x gtk gtk3 pygtk