【问题标题】:wxPython - GetValue() and panelswxPython - GetValue() 和面板
【发布时间】:2014-03-28 17:24:20
【问题描述】:

我做了一些测试,但不知道为什么,如果父级设置为 self(框架),GetValue() 会打印我输入的内容,但如果它设置为 self.panel。我需要 TextCtrl 在面板中。错误在哪里,如何让它正常工作?

import wx
class APP(wx.Frame):
    def __init__(self,parent,id,title):
        wx.Frame.__init__(self,parent,id,title)
        self.panel=wx.Panel(self)
        self.INPUT = wx.TextCtrl(self,-1,value="")  ############ Here
        self.Bind(wx.EVT_TEXT_ENTER, self.ONPRESSENTER, self.INPUT)

    def ONPRESSENTER(self,event):
        print self.INPUT.GetValue()

if __name__ == "__main__":
    app = wx.App()
    frame = APP(None,-1,'TextCtrl in a panel - GetValue Test')
    frame.Show(True)
    app.MainLoop()

它将以这种方式工作,并且我们不在面板中,只需将 wx.TextCtrl(self,-1,value="") 更改为 self.panel,它不会打印我们输入的字符串。

如果这是愚蠢的,请原谅我,我是菜鸟:D

Python 2.7

【问题讨论】:

    标签: python wxpython


    【解决方案1】:

    TextCtrl 应该有 wx.Panel 作为父级。您应该始终将面板作为框架中的第一个也是唯一的子小部件,因为它添加了选项卡支持并使应用程序在所有平台上看起来都正确。如果要捕获每个文本事件,则需要 wx.EVT_TEXT,而不是 wx.EVT_TEXT_ENTER。请参阅下面的编辑示例:

    import wx
    
    class APP(wx.Frame):
        def __init__(self,parent,id,title):
            wx.Frame.__init__(self,parent,id,title)
            self.panel=wx.Panel(self)
            self.INPUT = wx.TextCtrl(self.panel,-1,value="")  ############ Here
            self.Bind(wx.EVT_TEXT, self.ONPRESSENTER, self.INPUT)
    
        def ONPRESSENTER(self,event):
            print self.INPUT.GetValue()
    
    if __name__ == "__main__":
        app = wx.App()
        frame = APP(None,-1,'TextCtrl in a panel - GetValue Test')
        frame.Show(True)
        app.MainLoop()
    

    【讨论】:

    • 太棒了,谢谢。还有一件事。我使用 print cmd 来测试这个东西,但是在我的程序中,它必须是 Return,并且我想在用户按 Enter 时触发“ONPRESSENTER”,它不必为每个提交的字符都返回它。这将是无用的,也许它会导致一些问题。像我说的那样设置它的任何提示?再次感谢您的帮助!
    • 您可能希望绑定到 EVT_KEY_DOWN,然后检查按下的键是否为 WXK_RETURN。请参阅wxpython-users.1045709.n5.nabble.com/… 了解更多信息。
    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多