wx.CHOICE Auswahl in statuszeile anzeigen

Plattformunabhängige GUIs mit wxWidgets.
m3t3or
User
Beiträge: 18
Registriert: Donnerstag 16. Februar 2006, 11:21

wx.CHOICE Auswahl in statuszeile anzeigen

Beitragvon m3t3or » Freitag 25. August 2006, 10:45

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
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Beitragvon pr0stAta » Freitag 25. August 2006, 11:14

In deinem Fall einfach:

Code: Alles auswählen

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


Gruss prosta
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Beitragvon Francesco » Freitag 25. August 2006, 11:38

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.
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Beitragvon pr0stAta » Freitag 25. August 2006, 11:54

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
m3t3or
User
Beiträge: 18
Registriert: Donnerstag 16. Februar 2006, 11:21

Beitragvon m3t3or » Freitag 25. August 2006, 18:29

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?

Wer ist online?

Mitglieder in diesem Forum: Yahoo [Bot]