Sizer aktualisiert Größenänderungen nicht

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Phenex
User
Beiträge: 6
Registriert: Freitag 20. Juni 2008, 16:25

Hallo, das ist mein erster Beitrag.
Mein Problem ist, das in meiner GUI zwei Bilder sind, die sich jedoch ändern können...
Jowohl! auch in der Größe. Nur interessiert es den Sizer offenbar nicht, er ignoriert die Größenändrungen bei StaticBitmaps, ich weis allerdings nicht weshalb. Ich habe mal dieses Minimalprogramm erstellt um das Problem zu zeigen.
import wx

Code: Alles auswählen

class GuiFrame(wx.Frame):
	def __init__(self):
		wx.Frame.__init__(self, None, -1, "Test", (100, 100), style = wx.DEFAULT_FRAME_STYLE)
		self.panel = wx.Panel(self, -1)
		
		bitmap = wx.EmptyImage(50, 50).ConvertToBitmap()
		self.panel_sizer = wx.BoxSizer(wx.HORIZONTAL)
		self.eingangsbild = wx.StaticBitmap(self.panel, -1, bitmap, size = (bitmap.GetWidth(), bitmap.GetHeight()))
		self.panel_sizer.Add(self.eingangsbild)
		self.ausgangsbild = wx.StaticBitmap(self.panel, -1, bitmap, size = (bitmap.GetWidth(), bitmap.GetHeight()))
		self.panel_sizer.Add(self.ausgangsbild)
		
		self.text = wx.StaticText(self.panel, -1, "123")
		self.panel_sizer.Add(self.text)

		button = wx.Button(self.panel, -1, "Test")
		self.Bind(wx.EVT_BUTTON, self.Test, button)
		self.panel_sizer.Add(button)

		self.panel.SetSizerAndFit(self.panel_sizer)
	
	def Test(self, evnt):
		bitmap = wx.EmptyImage(30, 30).ConvertToBitmap()
		self.eingangsbild.SetBitmap(bitmap)
		self.ausgangsbild.SetBitmap(bitmap)
		self.text.SetLabel("12345")
		self.panel.GetSizer().RecalcSizes()

class SteganoApp(wx.App):
	def OnInit(self):
		frame = GuiFrame()
		frame.Show(True)
		return(True)

if (__name__ == '__main__'):
	app = SteganoApp(False)
	app.MainLoop()
Wenn nun die Bitmapgröße und anschließend der Sizer aktualisiert wird, müsste der ja eigentlich um die Static Bitmaps herum kollabieren, tut er aber nicht! Wenn ich das Bild größer mache, wird die Größe auch nicht geändert, der Rest wird abgeschnitten (sieht man nur an EmtyBitmaps nicht so gut, deswegen andersherum).
Was mache ich falsch? Wäre dankbar für jede Hilfe :? [/code]
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Phenex hat geschrieben:Hallo, das ist mein erster Beitrag
Hallo Phenex!

Willkommen im Python-Forum!

Kannst du damit http://paste.pocoo.org/show/74368/ etwas anfangen?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Phenex
User
Beiträge: 6
Registriert: Freitag 20. Juni 2008, 16:25

Juhu, danke Gerold :D
Mann hab ich lange gerätselt, woran das liegen könnte...
Mir ist die Reihenfolge in der man das mit den Sizern macht zwar etwas suspekt, aber egal. Hauptsache es geht endlich, danke nochmal.

Mein Fehler, weshalb es nicht funktionierte war einfach nur, dass als ich beim Instantieren des StaticBitmap die Größe mit angegeben habe. Dadurch war die offenbar wie in Benton gegossen. Nur wieder ganz toll, dass dieser Mist so aus der wxPython demo stammte! Die Demo ist zwar manchmal ein ganz gutes Nachschlagewerk, aber es steht auch viel bescheuerter Code drin :roll:
Antworten