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