Python GUIを作ろうとしています。ユーザーの入力をテキスト ボックスに取得し、[作成] ボタンをクリックしてファイルに書き込むことができるかどうかを確認する簡単なテストです。
これが私の現在のコードです:
import wx
class gui(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,'YML Generator v1.0', size=(500,800))
panel=wx.Panel(self)
wx.StaticText(panel, -1, "Name", (10,10))
global ItemName
boxx = wx.TextCtrl(panel, -1, pos = (90, 10), size = (100, -1))
ItemName=boxx.GetValue()
button=wx.Button(panel,label="Create!",pos=(100,100),size=(100,40))
self.Bind(wx.EVT_BUTTON, self.writeStuff, button)
def writeStuff(self, e):
yml = open("output.yml", "wb")
yml.write((ItemName) + " is what you entered.")
yml.close
def closewindow(self,event):
self.Destroy()
if __name__=='__main__':
app=wx.PySimpleApp() #runs the program
frame=gui(parent=None,id=-1) #displays the program
frame.Show() #shows the application
app.MainLoop() #runs the application
その前に、ItemName が定義されていないというエラーが発生していたため、ItemName をグローバルとして追加しました。
これで、「 is what you enter 」がファイルに書き込まれますが、ユーザー入力は表示されません。私は何を間違っていますか?