我正在爲我的日誌分析腳本編寫一個基本的gui。我使用GTK 2x,Glade和Python 2.7.3。如何將文本框中的字符串傳遞給函數
我有一些全局變量的定義,需要根據gui文本框中的用戶輸入來更改這些變量。整個佈局都是在空地上進行的。任何提示如何將字符串和值從小部件傳遞到GUI類之外的函數?從林間空地文件
示例文本框定義:
<child>
<object class="GtkEntry" id="serverIDtext">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">●</property>
<property name="text" translatable="yes">Server name.</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
</object>
<packing>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
</packing>
</child>
GUI類:
import pygtk
import gtk
import gtk.glade
from pyParse2 import *
class GUI:
def __init__(self):
builder = gtk.Builder()
builder.add_from_file("parsergui.glade")
self.window = builder.get_object("window1")
builder.connect_signals(self)
def on_window_destroy(self, widget, data = None):
gtk.main_quit()
def parseButton(self, widget, data = None):
parseLaunch()
編輯按MG。建議: 我想你的第一個忠告,並準備像這樣:
import pygtk
import gtk
import gtk.glade
from pyParse2 import *
class GUI:
def __init__(self):
builder = gtk.Builder()
builder.add_from_file("parsergui.glade")
self.window = builder.get_object("window1")
builder.connect_signals(self)
self.sID = builder.get_object("serverIDtext")
def on_window_destroy(self, widget, data = None):
gtk.main_quit()
def parseButton(self, widget, data = None):
global serverID
serverID = self.sID
print serverID
parseLaunch()
,並得到這樣的:
<gtk.Entry object at 0x2a97a58 (GtkEntry at 0x20e9118)>
據我瞭解(我是最有可能是錯誤的),我不能使用get_text,但必須做get_object,它不會返回一個字符串。有沒有辦法解決這個問題?
O_O
'self.sID'是一個'GtkEntry'。您需要調用'self.sID.get_text()'獲取'GtkEntry'內的文本。 – liberforce
我試着調用self.sID.get_text(),但我應該在哪裏調用它?正如我看到的,我應該首先get_object,因爲我已經有了,然後調用self.sID.get_text()來獲取Entry的值,對吧? – panta
哈!有用。現在只需將值傳遞給其他函數,這太棒了!非常感謝liberforce! – panta