Seite 1 von 1

wx.CHOICE Auswahl in statuszeile anzeigen

Verfasst: Freitag 25. August 2006, 10:45
von m3t3or
Hallo,
wie kann ich die Einträge "Eins","zwei", "Drei" bei geöffneter wx.CHOICE (beim drüberfahren mit der Mouse) in der Statusbar anzeigen lassen?

Code: Alles auswählen

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

import wx

class MainFrame(wx.Frame):
    def __init__(self, parent = None, id = -1, title = "mini"):
        wx.Frame.__init__(self, parent, id, title)
        mainpanel = wx.Panel(self)

        mainbox = wx.BoxSizer(wx.HORIZONTAL)
        mainpanel.SetSizer(mainbox)
        ch = wx.Choice(mainpanel,-1,(-1,-1),(100,-1),['eins','zwei','drei'])
        ch.Bind(wx.EVT_CHOICE, self.EvtChoice, ch)
        mainbox.Add(ch)
        self.CreateStatusBar()
        self.GetStatusBar().SetStatusText('Text 1',0)
        self.Show()
        mainpanel.Fit()
        self.SetClientSize(mainpanel.GetSizeTuple())
        self.SetSizeHintsSz(self.GetSizeTuple())
        
    def EvtChoice(ch, event):
        print('EvtChoice: %s' % event.GetString())

def main():
    app = wx.PySimpleApp()
    mainframe = MainFrame()
    app.MainLoop()


if __name__ == "__main__":
    main()
Danke

Verfasst: Freitag 25. August 2006, 11:14
von pr0stAta
In deinem Fall einfach:

Code: Alles auswählen

    def EvtChoice(ch, event):
        ch.SetStatusText(event.GetString())
Gruss prosta

Verfasst: Freitag 25. August 2006, 11:38
von Francesco
pr0stAta hat geschrieben:In deinem Fall einfach:

Code: Alles auswählen

    def EvtChoice(ch, event):
        ch.SetStatusText(event.GetString())
Gruss prosta
Ich glaube, der OP meinte nicht, wenn man eines gewählt hat, sondern
wenn man über die Liste mit der Maus fährt, wenn sie offen ist.
Ich habe dazu leider kein Event gefunden, das dann ausgelöst wird.

Verfasst: Freitag 25. August 2006, 11:54
von pr0stAta
Oh sry, hab den Text etwas zu sehr "überflogen"
Aber ich stelle mal eine wilde Vermutung an: Das wird nicht
gehen :)
*Edit*
Ich habe folgendes gefunden:

Code: Alles auswählen

self.XYZ.Bind(wx.EVT_ENTER_WINDOW, self.onMouseOver)
Damit kann man einen onMouseOver bei der Choice Auswahlbox simulieren.
Aber keine Ahnung wie / ob man die Einträge abfangen kann

Verfasst: Freitag 25. August 2006, 18:29
von m3t3or
Sollte das Anzeigen in der Statusbar nicht funktionieren, wie weise ich jedem Eintrag der wx.CHOICE einen Tooltip zu?

Oder gibt es noch andere Möglichkeiten zusätzliche Infos zu dem jeweiligen Eintrag anzeigen zu lassen, bevor ich den Eintrag anklicke und ohne ein neues Fenster, o.ä. zu öffnen?