在WxPython中获取用户输入

时间:2014-12-19 22:34:35

标签: python wxpython wxtextctrl

我想用一个gui制作一个程序,你可以在文本框中键入一些内容,然后执行该任务。我有一个非gui的例子就是:

input = input("");
def chat():
    if "hello" in input:
        print "hi"
while True:
    chat();

显然代码更长,但概念是一样的。我也使用espeak而不是打印,因此不需要标签

谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个简单的例子,基本上可以满足您的需求:

import wx

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Chat")
        panel = wx.Panel(self)

        my_sizer = wx.BoxSizer(wx.VERTICAL)

        lbl = wx.StaticText(panel, label="Input:")
        my_sizer.Add(lbl, 0, wx.ALL, 5)

        self.txt = wx.TextCtrl(panel, style=wx.TE_PROCESS_ENTER)
        self.txt.SetFocus()
        self.txt.Bind(wx.EVT_TEXT_ENTER, self.OnEnter)
        my_sizer.Add(self.txt, 0, wx.ALL, 5)

        panel.SetSizer(my_sizer)
        self.Show()

    #----------------------------------------------------------------------
    def OnEnter(self, event):
        """"""
        text = self.txt.GetValue()
        if text.lower() == "hello":
            print "Hi!"

if __name__ == "__main__":
    app = wx.App(True)
    frame = MyFrame()
    app.MainLoop()