ContextMenu Check Item Enable?

Plattformunabhängige GUIs mit wxWidgets.
Antworten
sabram
User
Beiträge: 28
Registriert: Mittwoch 5. Januar 2011, 13:42

Hallo,

ich versuche momentan auf einem TreeView ein ContextMenu zu bauen.
Auf diesem Habe ich mehrere Items die auch alle wunderbar arbeiten.
Nun versuche ich allerdings zusätzlich ein Checkitem einzubauen. Welches wenn auf einem TreeElement aktiviert werden kann, nun sollte es natürlich bei allen anderen Tree Elementen ausgegraut werden.
Doch hier schimpft wx mit mir und sagt das ich auf einem CheckItem kein Enable aufrufen kann.

Gibt es eine möglichkeit das Irgendwie zu bauen?

Hier kurzer Ausschnitt

Code: Alles auswählen

self.browseID = wx.NewId()
self.copyPathID = wx.NewId()
self.breakID = wx.NewId()
self.setFinallyStepID = wx.NewId()

Code: Alles auswählen

...
self.TestStepsContextMenu.AppendSeparator()
self.TestStepsContextMenu.AppendItem(setBreakpointBefore)
self.TestStepsContextMenu.AppendItem(setBreakpointAfter)
self.TestStepsContextMenu.Enable(self.pasteID, False)
self.TestStepsContextMenu.AppendSeparator()
self.TestStepsContextMenu.AppendCheckItem(self.setFinallyStepID,"Set Finally Step")

Code: Alles auswählen

    def ShowContextMenu(self, item):
                    element = self.getTreeItemXMLElement(item)
                        self.TestStepsContextMenu.Enable(self.cutID, True)
                        #if self.getFinallyStepID(element.parent) != None:
                            #self.TestCasesContextMenu.Enable(self.setFinallyStepID, True)
                        #else:
                            #self.TestCasesContextMenu.Enable(self.setFinallyStepID, False)
in dem letzten auskommentierten Teil kommt der Fehler der wie folgt ausschaut
''PyAssertionError: C++ assertion "item" failed at ..\..\src\common\menucmn.cpp(830) in wxMenuBase::Enable(): wxMenu::Enable: no such item''

Vielleicht kann mir ja jemand helfen.
Wäre super
Danke Gruß sabram
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

Auch wenn die Wahrscheinlichkeit, dass du das selbst schon rausgefunden hast, groß ist:

self.TestStepsContextMenu.AppendCheckItem(self.setFinallyStepID,"Set Finally Step")

self.TestCasesContextMenu.Enable(self.setFinallyStepID, True)

:roll:
sabram
User
Beiträge: 28
Registriert: Mittwoch 5. Januar 2011, 13:42

ja ...

ich möchte dir trotzdem vielmals danken ;)
Antworten