【问题标题】:Get user input in WxPython [duplicate]在WxPython中获取用户输入[重复]
【发布时间】:2014-12-19 22:34:35
【问题描述】:

我想制作一个带有 gui 的程序,您可以在其中在文本框中输入一些内容,然后它会执行该任务。我有一个非 gui 示例是这样的:

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

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

谢谢!

【问题讨论】:

    标签: python wxpython wxtextctrl


    【解决方案1】:

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

    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()
    

    【讨论】:

    • 谢谢!我只需要调整面板的大小!
    猜你喜欢
    • 2019-03-12
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    相关资源
    最近更新 更多