wx.ClientDC wx.ToolBar

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Hallo
Ich versuche mit einem wx.ClientDC auf eine Toolbar zu schreiben, allerdings klappt das nicht :roll:

Code: Alles auswählen

    def drawKonto(self, text):
        dc = wx.ClientDC(self.toolbar)
        dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
        dc.Clear()
        dc.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)) 
        dc.DrawText(text, 1, 1)
self.toolbar ist die Toolbar ;)
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Hey DatenMetzgerX,

also bei mir funktioniert die Variante mit ClientDC.
Nachfolgend mal mein Beispielcode:

Code: Alles auswählen

    def OnButtonDemoButton(self, event):
        
        dc = wx.ClientDC(self.__toolBar)
        dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
        dc.Clear()
        dc.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD))
        dc.DrawText('Hallo', 40, 1)
        event.Skip()
        
    def __InitToolBar(self):
       
        
        #Toolbar erzeugen
        self.__toolBar = self.CreateToolBar( wx.TB_HORIZONTAL
                                     | wx.TB_FLAT
                                     | wx.TB_TEXT
                                     )
             
        tsize = (16,16)
        
        new_bmp =  wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, tsize)
        open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize)
        save_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR, tsize)
        
        
        self.__toolBar.SetToolBitmapSize(tsize)
        
        id = wx.NewId()
        self.__toolBar.AddSimpleTool(id , new_bmp, "Neu")
        #self.__toolBar.Bind(wx.EVT_TOOL, self.OnBtnNew, id=id)
        
        id = wx.NewId()
        self.__toolBar.AddSimpleTool(id , open_bmp, "Konfigurationsdatei öffnen")
        #self.__toolBar.Bind(wx.EVT_TOOL, self.OnBtnLoadConfig, id=id)
        
        id = wx.NewId()
        self.__toolBar.AddSimpleTool(id , save_bmp, "Konfigurationsdatei speichern")
        #self.__toolBar.Bind(wx.EVT_TOOL, self.OnBtnSaveConfig, id=id)
        
        self.__toolBar.Realize()

In der Funktion "__InitToolBar" wird die Toolbar generiert. Dann habe ich als Beispiel die Button-Eventfkt. genutzt, um das "dc"-Objekt zu erzeugen.
Was du aber beachten mußt, wenn sich die eigentliche Toolbar neu zeichnet(z.B. wenn du mit der Maus über sie fährst), werden deine grafische Eigenschaften mit der ursprünglichen Grafik überzeichnet.

greets george
Antworten