jetzt schreibe ich mir eines selbst:
es ist noch lange nicht fertig aber es wird..
bitte um kommentar:
Code: Alles auswählen
from Tkinter import *
from sys import *
global feld
schrift1 = "-*-Curier--R-*--*-140-*-*-*-*-ISO8859-1"
schrift2 = "-*-Times-Bold-R-*--*-240-*-*-*-*-ISO8859-1"
class gui:
def __init__(self):
self.root = Tk()
self.flag = 0
self.objzahler = 0
self.felder = []
self.var1 = StringVar()
self.obj1=Radiobutton(self.root,width=7,relief='groove',bg='#ffffff',height=1,text='Label',indicatoron='0',variable=self.var1,value="label").place(x=7,y=36)
self.obj2=Radiobutton(self.root,width=8,relief='groove',bg='#ffffff',height=1,text='Entry',indicatoron='0',variable=self.var1,value="entry").place(x=71,y=37)
self.obj3=Radiobutton(self.root,width=8,relief='groove',bg='#ffffff',height=1,text='Button',indicatoron='0',variable=self.var1,value="button").place(x=141,y=37)
self.obj4=Radiobutton(self.root,width=8,relief='groove',bg='#ffffff',height=1,text='Radio',indicatoron='0',variable=self.var1,value="radio").place(x=212,y=37)
self.obj5=Radiobutton(self.root,width=8,relief='groove',bg='#ffffff',height=1,text='Canvas',indicatoron='0',variable=self.var1,value="canvas").place(x=283,y=37)
self.obj6=Radiobutton(self.root,width=12,relief='groove',bg='#ffffff',height=1,text='verschieben',indicatoron='0',variable=self.var1,value="move").place(x=354,y=38)
self.obj7=Button(self.root,width=20,relief='groove',bg='#ffffff',height=1,text='Code export',command=self.codemaker).place(x=4,y=71)
self.obj8=Label(self.root,width=12,relief='groove',bg='#ffffff',height=1,text='Tk fenster').place(x=221,y=76)
self.entryroot=Entry(self.root,width=12,relief='groove',bg='#ffffff',text='')
self.entryroot.place(x=308,y=75)
self.entryroot.insert(0,"self.root")
self.obj11=Label(self.root,width=62,relief='groove',bg='#ffffff',height=1,text='Gui Tkinter von Gerhard Rogen, v.0.1').place(x=5,y=11)
self.builder=Canvas(self.root,width=500,relief='groove',bg='#ffffff',height=400)
self.builder.place(x=13,y=116)
self.builder.bind("<Motion>",self.move)
self.builder.bind("<Button-1>",self.gedruckt)
self.builder.bind("<ButtonRelease-1>",self.druckt_los)
self.root.minsize(550,550)
def move(self,event):
global feld
if self.flag==1:
exec("self.obj" + str(feld) +".move(event.x,event.y)")
def gedruckt(self,event):
global feld
self.flag = 1
var = self.var1.get()
if var == "entry" or var == "label"or var == "button"or var == "canvas"or var == "radio":
self.objzahler = self.objzahler +1
exec("self.obj" + str(self.objzahler) +"= objects(self.builder,gu,'"+self.var1.get()+"',event.x,event.y," + str(self.objzahler) +",'"+str(self.entryroot.get())+"')")
self.felder.append(str(self.objzahler))
self.flag = 2
def druckt_los(self,event):
self.flag = 2
def listdel(self,objz):
print objz
self.felder.remove(str(objz)) # löschen aus der tabelle
print self.felder
def codemaker(self):
# datei öffnen
self.fi = file("erste.py","w")
self.fi.write("from Tkinter import *\n")
self.fi.write("class neue:\n")
self.fi.write(" def __init__(self):\n")
self.fi.write(" "+self.entryroot.get()+" = Tk()\n")
self.fi.write(" "+self.entryroot.get()+".minsize(500,450)\n")
# header
for f in self.felder:
exec("neu = self.obj" + f+".felder()\n")
self.fi.write(" "+ neu+"\n")
self.fi.write(" mainloop()\n")
self.fi.write("neue()\n")
self.fi.close()
class objects:
def __init__(self,root,gui,was,xx,yy,name,tkfenster):
"Objekte im canvas erstellen"
self.gui = gui
self.xx = xx
self.yy = yy
self.art = ""
self.text =""
self.width = "20"
self.height = "1"
self.bg = "#ffffff"
self.relief = "groove"
self.bd = "1"
self.indicatoron = ""
self.tkfenster = tkfenster
if was == "entry":
self.zelle = Entry(root,width=self.width)
self.zelle.bind("<Button-3>",self.edit)
self.art = "Entry"
if was == "label":
self.zelle = Label(root,text="text",width=self.width)
self.zelle.bind("<Button-3>",self.edit)
self.text="text"
self.art = "Label"
if was == "button":
self.zelle = Button(root,text="text",width=self.width,bg=self.bg,relief=self.relief,bd=self.bd)
self.zelle.bind("<Button-3>",self.edit)
self.text="text"
self.art = "Button"
if was == "canvas":
self.zelle = Canvas(root)
self.zelle.bind("<Button-3>",self.edit)
self.text=""
self.height="100"
self.width="100"
self.art = "Canvas"
if was == "radio":
self.zelle = Radiobutton(root,indicatoron="0",width=5)
self.zelle.bind("<Button-3>",self.edit)
self.text=""
self.height="1"
self.width="5"
self.indicatoron = "0"
self.art = "Radiobutton"
self.name = name
self.zelle.place(x=xx,y=yy)
self.zelle.bind("<Enter>",self.anz)
def delete(self):
self.gui.listdel(self.name)
self.zelle.destroy()
self.root2.destroy()
def move(self,xx,yy):
self.xx = xx
self.yy = yy
self.zelle.place(x=xx,y=yy)
def anz(self,event):
global feld
feld = self.name
def felder(self):
"sollte einen feld mit den daten zurückgebebne"
#print "felder------------------"
#print "self.obj" + str(self.name)
#print self.art
#print self.width
#print self.height
#print self.bg
#print self.relief
#print self.bd
#print self.xx
#print self.yy
feld = "self.obj"+ str(self.name)+"="+self.art+"("+str(self.tkfenster)+","
feld = feld +"width="+self.width
feld = feld +",relief='"+self.relief+"'"
feld = feld +",bg='"+self.bg+"'"
if self.art <> "Entry":
feld = feld +",height="+self.height
if self.art <> "Canvas":
feld = feld + ",text='"+self.text+"'"
if self.art == "Radiobutton":
print self.indicatoron
feld = feld + ",indicatoron='"+str(self.indicatoron)+"'"
feld = feld +")"+".place(x="+str(self.xx)+",y="+str(self.yy)+")"
return feld
def edit(self,event):
print "edit"
self.root2 = Toplevel()
self.root2.minsize(290,380)
self.obj1=Label(self.root2,width=10,relief='groove',bg='#ffffff',height=1,text='width').place(x=10,y=58)
self.obj2=Label(self.root2,width=10,relief='groove',bg='#ffffff',height=1,text='heigth').place(x=10,y=88)
self.obj3=Label(self.root2,width=10,relief='groove',bg='#ffffff',height=1,text='text').place(x=11,y=117)
self.obj4=Label(self.root2,width=10,relief='groove',bg='#ffffff',height=1,text='bgcolor').place(x=11,y=147)
self.obj5=Label(self.root2,width=10,relief='groove',bg='#ffffff',height=1,text='relief').place(x=12,y=176)
self.obj6=Label(self.root2,width=10,relief='groove',bg='#ffffff',height=1,text='border').place(x=12,y=206)
self.obj7=Label(self.root2,width=10,relief='groove',bg='#ffffff',height=1,text='indicator').place(x=13,y=235)
self.obj8=Label(self.root2,width=10,relief='groove',bg='#ffffff',height=1,text='var für Radio').place(x=13,y=265)
self.obj19=Label(self.root2,width=40,relief='groove',bg='#ffffff',height=1,text='Edit fenster').place(x=8,y=16)
self.entr1=Entry(self.root2,width=20,relief='groove',bg='#ffffff',text='')
self.entr1.place(x=104,y=56)
self.entr2=Entry(self.root2,width=20,relief='groove',bg='#ffffff',text='')
self.entr2.place(x=105,y=86)
self.entr3=Entry(self.root2,width=20,relief='groove',bg='#ffffff',text='')
self.entr3.place(x=104,y=115)
self.entr4=Entry(self.root2,width=20,relief='groove',bg='#ffffff',text='')
self.entr4.place(x=105,y=146)
self.entr5=Entry(self.root2,width=20,relief='groove',bg='#ffffff',text='')
self.entr5.place(x=104,y=176)
self.entr6=Entry(self.root2,width=20,relief='groove',bg='#ffffff',text='')
self.entr6.place(x=105,y=207)
self.entr7=Entry(self.root2,width=20,relief='groove',bg='#ffffff',text='')
self.entr7.place(x=105,y=236)
self.entr8=Entry(self.root2,width=20,relief='groove',bg='#ffffff',text='')
self.entr8.place(x=105,y=266)
self.obj15=Button(self.root2,width=8,relief='groove',bg='#ffffff',command=self.make,height=1,text='aktualisieren').place(x=11,y=347)
self.obj16=Button(self.root2,width=8,relief='groove',bg='#ffffff',command=self.delete,height=1,text='loschen').place(x=105,y=347)
self.obj18=Button(self.root2,width=8,relief='groove',bg='#ffffff',command=lambda:self.root2.destroy(),height=1,text='zuruck').place(x=198,y=347)
def make(self):
if self.entr1.get() <> "":
self.zelle["width"]=self.entr1.get()
self.width = self.entr1.get()
if self.entr2.get() <> "":
self.zelle["height"]=self.entr2.get()
self.height = self.entr2.get()
if self.entr3.get() <> "":
self.zelle["text"]=self.entr3.get()
self.text = self.entr3.get()
if self.entr4.get() <> "":
self.zelle["bg"]=self.entr4.get()
self.bg = self.entr4.get()
if self.entr5.get() <> "":
self.zelle["relief"]=self.entr5.get()
self.relief = self.entr5.get()
if self.entr6.get() <> "":
self.zelle["bd"]=self.entr6.get()
self.bd = self.entr6.get()
if self.entr7.get() <> "":
self.zelle["indicator"]=self.entr7.get()
self.bd = self.entr7.get()
gu = gui()
mainloop()