Menü und Radio Items

Plattformunabhängige GUIs mit wxWidgets.
Antworten
hmueller
User
Beiträge: 39
Registriert: Montag 27. November 2006, 16:07
Wohnort: Linz, Oberösterreich

Hallo!

Ich habe ein Menü, in dem sich einige Radio Items befinden, neben anderen Items.
Nun möchte ich nach dem aufbau des menüs später im Programmverlauf noch Radio Items dazufügen - diese sind aber anscheinend nicht mit den bisher existierenden zusammengeschaltet, ausserdem scheint das Binding nicht zu funktionieren.

leider ist das gesamte Programm zu groß, als dass ich hier ein Beispiel reingeben könnte, hat irgendjemand trotzdem eine Idee, was da falsch sein könnte?

Code: Alles auswählen

menu = self.menubar.GetMenu(self.menubar.FindMenu("Window"))
tem = wx.MenuItem(menu, -1, "&Test", kind=wx.ITEM_RADIO)
menuid = menu.AppendItem(item)
menuid.Check(False)
self.Bind(wx.EVT_MENU, self.OnPluginMenu, menuid)
I must not fear. Fear is the mind-killer. Fear is the little death that brings total obliteration.
I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,

Nun, da niemand sonst antwortet versuche ich mich mal: Magst Du uns vielleicht eine kleine Kostprobe geben, die das Problem reproduziert? Der Code sieht doch eigentlich ok aus.

(Nur nebenbei: Dein Beispiel wird nicht funktionieren und einen Traceback provozieren. Ich nehme mal an, daß das 'i' von 'item' nur beim Paste verschluckt wurde ;-) .)

Gruß,
Christian
hmueller
User
Beiträge: 39
Registriert: Montag 27. November 2006, 16:07
Wohnort: Linz, Oberösterreich

Ups, in der Tat, da war ein copy/paste/zusammenkuerz-fehler.

Ich habe nun herausgefunden, dass RadioItems im Menü etwas komplexer sind, als ich angenommen habe. Die Items werden beim Anlegen gruppiert, ich nehme an nach ansteigenden IDs. Vielleicht kann man das umgehen, indem man eine Reihe von IDs vorreserviert, das habe ich nicht versucht.

Ich habe einen Workaround implementiert, dass die später dynamisch hinzugefügten dann keine RadioItems mehr sind, und in einem (deaktivierten) RadioItem "zusammengefasst" sind, das schon am Anfang angelegt wird. Nicht extrem schön, aber durchaus passend für meinen Anwendungszweck.
I must not fear. Fear is the mind-killer. Fear is the little death that brings total obliteration.
I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path.
Antworten