DropDown Menü

Fragen zu Tkinter.
Antworten
schweden1997
User
Beiträge: 3
Registriert: Samstag 1. September 2012, 21:17

Hallo,

ich versuche bei meinem Programm ein DropDown Menü zu schreiben um die Rechenart auszuwählen. Der folgende Code funktionier einwandfrei.

Code: Alles auswählen

import tkinter as tk

class View(tk.Tk):
	def __init__(self):
		tk.Tk.__init__(self)
		L = ["+","-","*","/"]
		self.vS = tk.StringVar(master=self)
		self.vS.set("Rechenart")
		self.oS = tk.OptionMenu(self,self.vS,*L, command=self.cbOption)
		self.oS.pack()

	def cbOption(self,wert):
		print(wert)

v = View()
v.mainloop()
allerdings bekomme ich es nicht hin den Code in mein eigentliches Programm zu schreiben, welches so aussieht:

Code: Alles auswählen

from Tkinter import *
from funktionen import *
root = Tk()
z1 = Entry(root)
z1.grid(row=0,column=0,padx=10,pady=10)

n1 = Entry(root)
n1.grid(row=2,column=0,padx=10,pady=10)

z2 = Entry(root)
z2.grid(row=0,column=2,padx=10,pady=10)

n2 = Entry(root)
n2.grid(row=2,column=2,padx=10,pady=10)

strich0=Label(root,text="-----------------------")
strich2=Label(root,text="-----------------------")
strich4=Label(root,text="-----------------------")
strich0.grid(row=1,column=0,padx=10,pady=10)
strich2.grid(row=1,column=2,padx=10,pady=10)
strich4.grid(row=1,column=4,padx=10,pady=10)



root.mainloop()
auch will ich nicht am Anfang das hier schreiben, egal welche Vorteile diese Schreibweise hat.

Code: Alles auswählen

import Tkinter as tk
Danke schonmal im Voraus
LG Schweden1997
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi schweden1997

Hier etwas zum herumspielen:

Code: Alles auswählen

try:
    #~~ For Python 2.x
    import Tkinter as tk
except ImportError:
    #~~ For Python 3.x
    import tkinter as tk

class MyApp(tk.Tk):
        def __init__(self):
            tk.Tk.__init__(self)
            
            self.protocol("WM_DELETE_WINDOW", self.close_app)
            self.title("My application")

            operations = ["+","-","*","/"]
            self.vS = tk.StringVar(master=self)
            self.vS.set("Rechenart")
            self.oS = tk.OptionMenu(self, self.vS, *operations,
                command=self.cbOption)
            self.oS.grid(row=0, column=0, columnspan=4)

            self.zaehler1 = tk.Entry(self)
            self.zaehler1.grid(row=1, column=0, padx=10, pady=10)

            self.nenner1 = tk.Entry(self)
            self.nenner1.grid(row=3, column=0, padx=10, pady=10)

            self.zaehler2 = tk.Entry(self)
            self.zaehler2.grid(row=1,column=2,padx=10,pady=10)

            self.nenner2 = tk.Entry(self)
            self.nenner2.grid(row=3, column=2, padx=10, pady=10)

            strich0 = tk.Label(self, text="-----------------------")
            strich2 = tk.Label(self, text="-----------------------")
            strich4 = tk.Label(self, text="-----------------------")
            strich0.grid(row=2, column=0, padx=10, pady=10)
            strich2.grid(row=2, column=2, padx=10, pady=10)
            strich4.grid(row=2, column=3, padx=10, pady=10)

        def cbOption(self, wert):
            print(wert)
    
        def run_app(self):
            self.mainloop()
            
        def close_app(self):
            # Do things before closing application
            self.destroy()

MyApp().run_app()
schweden1997 hat geschrieben:auch will ich nicht am Anfang das hier schreiben, egal welche Vorteile diese Schreibweise hat.

Code: Alles auswählen

import Tkinter as tk
Bleibt aber meine bevorzugte Schreibweise.

Gruß wuf :wink:
Take it easy Mates!
Antworten