Frage zu wx.EVT_*

Plattformunabhängige GUIs mit wxWidgets.
BaseBallBatBoy
User
Beiträge: 15
Registriert: Mittwoch 18. April 2007, 13:21

Frage zu wx.EVT_*

Beitragvon BaseBallBatBoy » Freitag 27. April 2007, 13:06

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).
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Frage zu wx.EVT_*

Beitragvon gerold » Freitag 27. April 2007, 15:02

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BaseBallBatBoy
User
Beiträge: 15
Registriert: Mittwoch 18. April 2007, 13:21

Beitragvon BaseBallBatBoy » Montag 30. April 2007, 07:54

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...)?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Montag 30. April 2007, 08:13

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder