Seite 1 von 1

wx.ClientDC wx.ToolBar

Verfasst: Montag 16. Oktober 2006, 16:43
von DatenMetzgerX
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 ;)

Verfasst: Dienstag 17. Oktober 2006, 09:40
von george
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