Seite 1 von 1

Frage zu wx.EVT_*

Verfasst: Freitag 27. April 2007, 13:06
von BaseBallBatBoy
hi!

ich möchte ein textfeld auf einem grid erstellen, wo man was eingibt und danach per enter den string übergibt. nur, wie sieht der wx.EVT_* dazu aus? hier mal mein code

Code: Alles auswählen

self.txt = wx.TextCtrl(panel, 1, '',  style=wx.TE_LEFT)
        grid.Add(self.txt, pos=(0,0), flag=wx.EXPAND)

.........

self.txt.Bind(wx.EVT_???????????, self.OnAddTxt, id=1)
also bei mir wird das textfeld angezeigt und auch onaddtxt macht was es soll. es ist einfach noch die frage, wie der EVT_* aussehen muss...
kann mir da jemand helfen?
ps: wenn ihr ne page kennt, wo alle EVT_* aufgelistet sind, wäre ich euch dankbar, denn bei mir im eclipse geht die autocompletion für wx. leider nicht (ctrl + space).

Re: Frage zu wx.EVT_*

Verfasst: Freitag 27. April 2007, 15:02
von gerold
BaseBallBatBoy hat geschrieben:per enter den string übergibt.
Hi BBBB!

Mir ist evt. nicht ganz klar was du machen möchtest. Ist es so etwas?

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import wx

wx.SetDefaultPyEncoding("iso-8859-15")


class MyFrame(wx.Frame):
    
    def __init__(
        self, parent = None, id = -1, title = "Example", size = wx.Size(550, 420)
    ):
        
        wx.Frame.__init__(self, parent, id, title, size = size)
        
        panel = wx.Panel(self)
        self.panel = panel
        
        vbox_main = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(vbox_main)
        
        vbox = wx.BoxSizer(wx.VERTICAL)
        vbox_main.Add(vbox, 1, wx.EXPAND | wx.ALL, 5)
        
        # Label1
        self.my_label1 = wx.StaticText(panel)
        self.my_label1.SetBackgroundColour("yellow")
        vbox.Add(self.my_label1, 1, wx.EXPAND | wx.ALL, 5)
        
        # Label2
        message = (
            u"Geben Sie etwas in das Textfeld ein und drücken Sie ENTER "
            u"um den Text in das gelbe Label1 zu übernehmen."
        )
        my_label2 = wx.StaticText(panel, label = message)
        my_label2.Wrap(300)
        vbox.Add(my_label2, 0, wx.EXPAND | wx.ALL, 5)
        
        # Textctrl
        self.txtctrl = wx.TextCtrl(panel, style = wx.TE_PROCESS_ENTER)
        vbox.Add(self.txtctrl, 0, wx.EXPAND | wx.ALL, 5)
        self.txtctrl.Bind(wx.EVT_TEXT_ENTER, self.update_labeltext)
        
        # Layout
        panel.Fit()
        self.Fit()
        self.SetSizeHintsSz(self.GetSize())
    
    
    def update_labeltext(self, event = None):
        self.my_label1.SetLabel(self.txtctrl.GetValue())
        self.panel.Layout()
        event.Skip()


def main():
    """Testing"""
    
    app = wx.PySimpleApp()
    f = MyFrame()
    f.Center()
    f.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()
mfg
Gerold
:-)

Verfasst: Montag 30. April 2007, 07:54
von BaseBallBatBoy
genau! wx.EVT_TEXT_ENTER und wx.TE_PROCESS_ENTER, das ist es!
danke!
nur: gibts irgendwo ne liste wo all die EVT und TE aufgelistet sind, dass man da auch schneller das passende findet (ich will ja nicht jedes mal einen thread schreiben müssen...)?

Verfasst: Montag 30. April 2007, 08:13
von gerold
BaseBallBatBoy hat geschrieben:gibts irgendwo ne liste wo all die EVT und TE aufgelistet sind
Hi BBBB!

- http://wxwidgets.org/manuals/stable/wx_wxtextctrl.html
- http://wxwidgets.org/manuals/stable/wx_classref.html

mfg
Gerold
:-)