回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>这可能是一个<code>python3</code>问题。
在下面的代码中,print(numele)工作正常,即<code>connect</code>函数{<cd4>}正常。在</p>
<pre><code>from gi.repository import Gtk, GObject
class EntryWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Entry Demo")
self.set_size_request(100, 50)
grid=Gtk.Grid()
self.add(grid)
#Create Entry nument
self.nument = Gtk.Entry()
self.numlab = Gtk.Label()
self.numlab.set_text("Number Of Element")
self.nument.set_text("Number Of Element")
self.nument.set_editable("TRUE")
grid.attach(self.numlab, 0,2,1,1)
grid.attach(self.nument, 1,2,1,1)
#Connect Entry nument
self.nument.connect("activate",self.get_nument)
#Create Entry from numele
for i in range(1,numele+1):
self.entry = Gtk.Entry()
self.entry.set_text("Hello World")
self.entry.set_editable("FALSE")
grid.attach(self.entry, 0,2+i,1,1)
def get_nument(self,entry):
numele= self.nument.get_text()
print(numele)
win = EntryWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
</code></pre>
<p>但是,在<code>for loop</code>中,它不能访问numele值。在</p>
^{pr2}$
<p>我是python新手。所以,我希望numele对函数get-nument是私有的。
在功能(即公共)之外使用它的最佳方式是什么?在</p>
<p>请帮忙。在</p>
<p><strong>编辑:普托马托回复后</strong>
我试过了,用的是:</p>
<pre><code>#Connect Entry nument
self.nument.connect("activate",self.get_nument)
print(self.numele)
</code></pre>
<p>并将函数定义为:</p>
<p>定义(自我,进入):
self.numele=self.nument.get_文本()</p>
<p>只是有错误:</p>
<pre><code>$ python3 test.py
Traceback (most recent call last):
File "test.py", line 35, in <module>
win = EntryWindow()
File "test.py", line 21, in __init__
self.nument.connect("activate",self.get_nument)
AttributeError: 'EntryWindow' object has no attribute 'get_nument'
</code></pre>