GridBagSizer mit StaticBitmap und anderen controls

Plattformunabhängige GUIs mit wxWidgets.
Antworten
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Hallo,

sorry, steh' grad auf dem Schlauch:
Ich wollte auf einem Panel einen GridBagSizer anbringen
und ein StaticBitmap und einen StaticText anzeigen.
Allso nichts schwieriges, sollte man meinen, es wird aber nur
das Bild angezeigt:

Code: Alles auswählen

#!/usr/bin/env python

from    time            import sleep, clock
#from   wxPython.wx     import wxPyTimer
import  wx

#-----------------GUI-----------------------------------------------------------
class MainFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Bsp1", pos=(0,0), size=(1024,768))
        
        panel1 = wx.Panel(self, -1)
        panel1.SetBackgroundColour("White")
        sizerT=wx.GridBagSizer(hgap=30, vgap=10)        
        
        filemenu = wx.Menu()
        helpmenu = wx.Menu()
        
        item5=filemenu.Append(-1, "&Open file\tAlt-O", "Datei oeffnen/laden")
        filemenu.AppendSeparator()
        item2=filemenu.Append(wx.NewId(), "E&xit\tAlt-X", "Ende des ganzen...")
        item3=helpmenu.Append(wx.NewId(), '&Bedienung')

        menubar = wx.MenuBar()
        menubar.Append(filemenu, "&File")
        
        menubar.Append(helpmenu, "&Hilfe")
        self.SetMenuBar(menubar)

        self.statusbar=self.CreateStatusBar()
        self.statusbar.SetStatusText("Initialisiere . . . ")

        ##-----
        self.txtG4 = wx.StaticText(panel1, -1, "Ana4")
        self.txtG4.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.NORMAL))
        self.txtG4.SetBackgroundColour("White")
        sizerT.Add(self.txtG4, pos=(7,1))
        
        # load the logo-image from the file
        krs2 = wx.Image("bsp2.jpg", wx.BITMAP_TYPE_ANY)
        sizerT.Add(wx.StaticBitmap(self, -1, wx.BitmapFromImage(krs2)), pos=(1, 1), span=(1,1))
        
        
        #--------------- bindings ----------------------------------------------
        self.Bind(wx.EVT_MENU,  self.OnHelp,        item3)
        self.Bind(wx.EVT_MENU,  self.OnExit,        item2)

        panel1.SetSizer(sizerT)
        panel1.Fit()

        
    def OnExit(self, evt):
        self.Close(True)

    def OnHelp(self, evt):
        dlg = Bedienung(self)
        dlg.ShowModal()
        dlg.Destroy()


#-----------------main----------------------------------------------------------

if __name__ == '__main__':
    class MyApp(wx.App):
        def OnInit(self):
            frame = MainFrame()
            frame.Show(True)
            self.SetTopWindow(frame)
            #wx.lib.inspection.InspectionTool().Show()
            return True

    app = MyApp(False)
    app.MainLoop()

Zuletzt geändert von Anonymous am Dienstag 24. Juli 2012, 14:55, insgesamt 1-mal geändert.
Grund: Syntaxhervorhebung aktiviert
BlackJack

@joh#: Kann es sein, dass Du einfach nur das Fenster gross genug machen musst um den Text zu sehen? Je nach grösse des Bildes was ich für ``bsp2.jpg`` einsetze muss ich das nämlich tun.
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

BlackJack hat geschrieben:@joh#: Kann es sein, dass Du einfach nur das Fenster gross genug machen musst um den Text zu sehen? Je nach grösse des Bildes was ich für ``bsp2.jpg`` einsetze muss ich das nämlich tun.
Ich habe es auch mit ganz kleinen (200 x 30 Pixel) probiert, da kommt auch nichts.
Aber der Quelltext ist doch so i.O. oder?

Gruß
joh

Edit 20120725:
ich bin wohl auf windows "paint" reingefallen, obwohl meine Grafik nur 200x30 _gemalt_ war, hat
es trotzdem eine 1296x800 draus gemacht. Und damit kommt dann der GridBagSizer nicht klar,
wenn er ein widget darstellen soll, daß sein grid 'sprengt'
Antworten