4
环境:顺利更新标签文本
- 使用Glade3内置接口。
- 后端是使用GTK + Builder库以Python编写的。
-
虽然我知道我需要使用更新,我无法获得在Python代码中的标签对象标签的文本(label.set_text(“字符串”))的方法。
这里是我的代码如下所示:
#!/usr/bin/python
# Filename: HelloPython.py
# Author: Andrew Hefley Carpenter
# Date: 18 August 2010
import sys
import gtk
class HelloPython:
def on_window_destroy(self, widget, data=None):
gtk.main_quit()
def __init__(self):
builder = gtk.Builder()
builder.add_from_file("HelloPython.xml")
self.window = builder.get_object("window")
builder.connect_signals(self)
def on_button1_clicked(self, widget):
print "Hello World!"
widget.set_label("Hello World!")
#I'd like to update
if __name__ == "__main__":
editor = HelloPython()
editor.window.show()
gtk.main()
最终目标:我想更新“对象X”用它的回调“对象Y”(在这种情况下按钮1)后set_text方法,通过为处理“on_button1_clicked”
理解的。容器层次如下: -Window有一个孩子,垂直框'2容器' - 垂直框有两个孩子,button1和label1。 - 我想在label1同步时更新label1,点击button1。我怎样才能做到这一点/有什么概念上的障碍阻止我去理解这一点? 感谢您的快速响应。 – Drew 2010-08-18 01:00:57
啊,gtk不知道或关心这个“兄弟”关系。您需要使用gtk.Builder.get_object()获取对该标签的引用,并在该对象上调用set_text。 – anthony 2010-08-18 01:59:40
另外,你会希望尽快摆脱使用glade的默认widget名称(button1,label1)的习惯,否则你的生活会很糟糕。 – anthony 2010-08-18 02:04:03