wx.radiobutton es tut sich nix !
Verfasst: Samstag 17. Januar 2009, 13:04
servus leute ich bin fast am verzweifeln
suche schon seit stunden im netz und bekomm das mit den radiobutton nicht hin
soll Radiobuttons unabhängig voneinander ein und ausschalten
abfrage des jeweiligen zustandes
suche schon seit stunden im netz und bekomm das mit den radiobutton nicht hin
soll Radiobuttons unabhängig voneinander ein und ausschalten
abfrage des jeweiligen zustandes
Code: Alles auswählen
# -*- coding: cp1252 -*-
import sys
import os
import wx
import wx.lib.scrolledpanel as scrolled
class Hpgl_Viewer_Mill(wx.Frame):
def __init__(self, parent=None, id=-1, title='test RADIOBUTTEN'):
wx.Frame.__init__(self, parent, id, title,pos=(10,10), size=(300, 370))
# Panel für Button und Scrollfenster
panel = wx.Panel(self, -1, size=(300,350))
#Button
self.button = wx.Button(panel, -1, "Beenden")
#Radiobutton
self.rb_umriss = wx.RadioButton(panel, 1004, 'Platinen_Ummriss',size=wx.DefaultSize)
self.rb_einelinie = wx.RadioButton(panel, 1005, 'nur 1 Linie',size=wx.DefaultSize)
self.rb_umriss.SetValue(True)
self.rb_einelinie.SetValue(False)
#'horizontal arangment oben
self.eingabesizer = wx.BoxSizer(wx.HORIZONTAL)
self.eingabesizer.Add( self.button,0,wx.ALIGN_LEFT)
#'horizontal arangment unten
self.auswahlsizer = wx.BoxSizer(wx.HORIZONTAL)
self.auswahlsizer.Add( self.rb_umriss,0,wx.ALIGN_LEFT)
self.auswahlsizer.Add((5, 5))
self.auswahlsizer.Add( self.rb_einelinie,0,wx.ALIGN_LEFT)
self.platine = (580,480)
size = self.platine #(580, 580)
#Scrollfenster
self.scrollw = wx.ScrolledWindow(panel, -1,
style=wx.SUNKEN_BORDER, size=(250,250))
self.scrollw.SetScrollbars(1, 1, self.platine[0]-2,self.platine[1]-2)
#Sizer
mainsizer = wx.BoxSizer(wx.VERTICAL)
mainsizer.Add((10, 10))
mainsizer.Add(self.eingabesizer, 0, wx.ALIGN_CENTER)
mainsizer.Add((10, 10))
mainsizer.Add(self.scrollw, 0, wx.ALIGN_CENTER)
mainsizer.Add((5, 5))
mainsizer.Add(self.auswahlsizer, 0, wx.ALIGN_CENTER)
panel.SetSizer(mainsizer)
#Bindungen
self.Bind(wx.EVT_BUTTON, self.close, self.button)
self.Bind(wx.EVT_RADIOBUTTON, self.umriss, id=1004)
self.Bind(wx.EVT_RADIOBUTTON, self.einelinie, id=1005)
# Bild, auf dem die Grafik gezeichnet wird
self.bmp = self.get_base_bitmap(size)
# Aufruf Paint-Event
self.scrollw.Bind(wx.EVT_PAINT, self.on_paint)
# und jetzt wird gezeichnet
self.drawPicture()
def Zoom(self):
self.bmp = self.get_base_bitmap(self.platine)
self.drawPicture()
self.scrollw.Scroll(self.platine[0]-2,self.platine[1]-2)
self.scrollw.Scroll(1,1)
def get_base_bitmap(self, size):
bmp = wx.EmptyBitmap(*size)
self.dr = wx.MemoryDC(bmp)
self.dr.SetBackground(wx.WHITE_BRUSH)
self.dr.Clear()
self.dr.SelectObject(wx.NullBitmap)
return bmp
def einelinie(self,event):
#print 'hier einelinie'
#print self.rb_einelinie.GetId()
#print self.rb_einelinie.GetValue()
if self.rb_einelinie.GetValue() == True:
self.rb_einelinie.SetValue(False)
else:
self.rb_einelinie.SetValue(True)
#print self.rb_einelinie.GetValue()
self.Zoom()
def umriss(self,event):
#print 'hier ummriss'
#print self.rb_umriss.GetValue()
if self.rb_umriss.GetValue()== True:
self.rb_umriss.SetValue(False)
else:
self.rb_umriss.SetValue(True)
self.Zoom()
def on_paint(self, event=None):
wx.BufferedPaintDC(self.scrollw, self.bmp, style=wx.BUFFER_VIRTUAL_AREA)
def drawPicture(self):
self.dr = wx.MemoryDC(self.bmp)
self.dr.SelectObject(wx.NullBitmap)
"""
Hier soll er was mit dem button druck tun
dazu muss sich ja was ändern beim drücken des RADIOBUTTON
"""
print self.rb_einelinie.GetValue()
def close(self, event):
self.Destroy()
def OnCloseWindow(self, event=None):
self.Destroy()
def main():
app = wx.PySimpleApp()
fenster = Hpgl_Viewer_Mill()
fenster.Center()
fenster.Show()
app.MainLoop()
if __name__ == "__main__":
main()