Button mit Menü?

Plattformunabhängige GUIs mit wxWidgets.
Antworten
bonaire
User
Beiträge: 13
Registriert: Mittwoch 27. August 2008, 12:27
Wohnort: Karlsruhe

Hallo alle,


ich habe leider nichts entsprechendes gefunden, aber gibt es mit wxPython die Möglichkeit, einem Button ein Menü mitzugeben?
Der Button hat dann eine Default-Aktion und mit dem Menü kann man weitere Aktionen festlegen.

Unter QT sieht das so aus http://doc.trolltech.com/main-snapshot/ ... .html#menu


cu
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

bonaire hat geschrieben:gibt es mit wxPython die Möglichkeit, einem Button ein Menü mitzugeben? Der Button hat dann eine Default-Aktion und mit dem Menü kann man weitere Aktionen festlegen
Hallo bonair!

Suche in der Demo nach "PlateButton" und nach "PopupMenu".

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

ich stell mal ein beispiel rein
mit button und dialog
du soltest vieleicht konkret ein problem posten damit du auch dann konkrete lösungen bekommst

Code: Alles auswählen

# -*- coding: cp1252 -*-

import  wx


#---------------------------------------------------------------------------

class Frame(wx.Frame):
    def __init__(
            self, parent = None, ID = 1, title = "Dir Dialog", pos=wx.DefaultPosition,
            size=(400,400), style= wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)
            ):

        wx.Frame.__init__(self, parent, ID, title, pos, size, style)
        panel = wx.Panel(self, -1)

        #Button
        button = wx.Button(panel, 1003, "Beenden")
        button.SetPosition((150, 300))
        self.dir = wx.Button(panel, -1, "Create and Show a DirDialog", (50,50))
        self.Bind(wx.EVT_BUTTON, self.OnButton, self.dir)

        self.Bind(wx.EVT_BUTTON, self.OnCloseMe, button)
        self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
    def OnCloseMe(self, event):
        self.Close(True)

    def OnCloseWindow(self, event):
        self.Destroy()

    def OnButton(self, evt):
        # In this case we include a "New directory" button. 
        dlg = wx.DirDialog(self, "Choose a directory:",
                          style=wx.DD_DEFAULT_STYLE
                           #| wx.DD_DIR_MUST_EXIST
                           #| wx.DD_CHANGE_DIR
                           )

        # If the user selects OK, then we process the dialog's data.
        # This is done by getting the path data from the dialog - BEFORE
        # we destroy it. 
        if dlg.ShowModal() == wx.ID_OK:
            print('You selected: %s\n' % dlg.GetPath())

        # Only destroy a dialog after you're done with it.
        dlg.Destroy()
        

def main():
    
    app = wx.PySimpleApp()
    fenster = Frame()
    fenster.Center()
    fenster.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()
bonaire
User
Beiträge: 13
Registriert: Mittwoch 27. August 2008, 12:27
Wohnort: Karlsruhe

Vielen Dank,

hat funktioniert :D
Ich benutze jetzt den PlateButton. Habe mir vorher einen Wolf gesucht und auch der scheint ja nigelnagelneu zu sein.
Ich habe keinen speziellen Code hineingestellt, weil ich mir keine spezielle Antwort, sondern eine Allgemeine erhofft habe :wink:


cu
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Allgemein ist Relativ und kann alles heisen !

na dann hat sich ja deine Anfrage zum Positiven ergebniss gewandelt
viel spass noch beim Proggen!
lunar

bonaire hat geschrieben:Unter QT sieht das so aus http://doc.trolltech.com/main-snapshot/ ... .html#menu
Nur so nebenbei: Arbeitest du wirklich mit Development-Snapshots von Qt, oder hast du nur die Doku dahin verlinkt?
bonaire
User
Beiträge: 13
Registriert: Mittwoch 27. August 2008, 12:27
Wohnort: Karlsruhe

lunar hat geschrieben:Nur so nebenbei: Arbeitest du wirklich mit Development-Snapshots von Qt, oder hast du nur die Doku dahin verlinkt?
Ich habe früher ein bisschen in KDE gemacht und kenne das daher, habe aber leider momentan keine Zeit dafür. Der Artikel hinter dem Link war schon mit QT3 aktuell, da hat sich nichts verändert. Habe ihn genommen, weil er mich als erstes angesprungen hat.

cu
Antworten