mit tkinter muss ich auf zwei def zugreifen (zwei Button-Funktionen) und die Zahlenwerte in Form einer Liste von einer def auf die zweite def übertragen. Am besten wäre es, wenn die Liste aus der ersten def als txt-Datei gespeichert würde und dann in der zweiten def Datei wieder aus der txt-Datei hochgeladen werden könnte. Ich habe vieles probiert. Es funktioniert, wenn ich keine def einsetze. Das Einrücken bei der def ist das Problem. Ich muss aber def einsetzen und einrücken, wegen tkinter.
Ich wäre dankbar, wenn mir jemand über diese Hürde helfen könnte. Bitte um verständliche Hilfe: bin ein ein wenig fortgeschrittener Anfänger.
Code: Alles auswählen
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import time
import numpy as np
from numpy import array
try:
import Tkinter as tk
import ttk
except ImportError:
import tkinter as tk
from tkinter import ttk
prio = [5, 6, 2]
def priorisieren_00():
a00 = float (eingabefelda00.get())
b00 = float (eingabefeldb00.get())
c00 = float (eingabefeldc00.get())
d00 = float (eingabefeldd00.get())
e00 = float (eingabefelde00.get())
if a00 < (e00 + d00):
prio00 = 10
elif a00 > (c00 + e00):
prio00 = 9
elif (a00 * b00) < (a00 * 50):
prio00 = 8
else:
prio00 = 20
ausgabeprio000.configure(text=str(prio00))
prio[0] = prio00
np.savetxt("test.txt", prio)
def priorisieren_01():
prio01 = 20
ausgabeprio001.configure(text=str(prio01))
prio[1] = prio01
np.savetxt("test.txt", prio, fmt="%8.2f")
def priorisieren_02():
prio02 = 40
ausgabeprio002.configure(text=str(prio02))
prio[2] = prio02
np.savetxt("test.txt", prio, fmt= "%8.2f")
def listen():
prio = np.loadtxt("test.txt")
listsummand = np.array([0.01, 0.02, 0.03])
listsumme = (prio + listsummand)
listsort = np.sort(-listsumme)
listprio = (1 - (listsort % 1)) * 100
priola1 = listprio[1]
priola2 = listprio[2]
priola3 = listprio[3]
ausgabeprio003.configure(text=str(priola1))
ausgabeprio004.configure(text=str(priola2))
ausgabeprio005.configure(text=str(priola3))
fenster = tk.Tk()
fenster.title("Python-Programm")
fenster.config(bg="#87cefa")
fenster.geometry("2000x800")
eingabefelda00 = tk.Entry(fenster, bd=4, width=20)
eingabefelda00.insert(10, 10)
eingabefeldb00 = tk.Entry(fenster, bd=4, width=20)
eingabefeldb00.insert(10, 4)
eingabefeldc00 = tk.Entry(fenster, bd=4, width=20)
eingabefeldc00.insert(10, 3)
eingabefeldd00 = tk.Entry(fenster, bd=4, width=20)
eingabefeldd00.insert(10, 2)
eingabefelde00 = tk.Entry(fenster, bd=4, width=20)
eingabefelde00.insert(10, 1)
ausgabeprio000 = tk.Label(fenster, background = "#ffffff", font = ("Helvetica", 14, "bold"), text = " Priorität ")
ausgabeprio001 = tk.Label(fenster, background = "#ffffff", font = ("Helvetica", 11, "bold"), text = " Priorität ")
ausgabeprio002 = tk.Label(fenster, background = "#ffffff", font = ("Helvetica", 11, "bold"), text = " Priorität ")
ausgabeprio003 = tk.Label(fenster, background = "#ffffff", font = ("Helvetica", 11, "bold"), text = " Platz 1 ")
ausgabeprio004 = tk.Label(fenster, background = "#ffffff", font = ("Helvetica", 11, "bold"), text = " Platz 2 ")
ausgabeprio005 = tk.Label(fenster, background = "#ffffff", font = ("Helvetica", 11, "bold"), text = " Platz 3 ")
prio00 = tk.Button(fenster, background = "#306998", foreground = "#ffffff", borderwidth = 2, text=" prio0? ", command=priorisieren_00)
prio01 = tk.Button(fenster, background = "#306998", foreground = "#ffffff", borderwidth = 2, text=" prio1? ", command=priorisieren_01)
prio02 = tk.Button(fenster, background = "#306998", foreground = "#ffffff", borderwidth = 2, text=" prio2? ", command=priorisieren_02)
prioliste = tk.Button(fenster, background = "#306998", foreground = "#ffffff", borderwidth = 2, text=" prioliste? ", command=listen)
eingabefelda00.grid(row = 1, column = 1)
eingabefeldb00.grid(row = 2, column = 1)
eingabefeldc00.grid(row = 3, column = 1)
eingabefeldd00.grid(row = 4, column = 1)
eingabefelde00.grid(row = 5, column = 1)
prio00.grid(row = 6, column = 1)
ausgabeprio000.grid(row=6, column =2)
prio01.grid(row = 12, column = 1)
ausgabeprio001.grid(row=12, column =2)
prio02.grid(row = 18, column = 1)
ausgabeprio002.grid(row=18, column =2)
prioliste.grid(row = 19, column = 1)
ausgabeprio003.grid(row=20, column =1)
ausgabeprio004.grid(row=20, column =2)
ausgabeprio005.grid(row = 20, column = 3)
fenster.mainloop()