2017-02-18 8 views
-3

Ich brauche wirklich Hilfe, ich habe ein Skript geschrieben, das eine Flow-Gleichung implementiert. Das Problem ist, dass ich dies gerne in eine GUI umwandeln würde, ich bin ein Student und ich bin dazu bestimmt, diese Aufgabe bald zu übergeben, ich habe keine Zeit mehr, Tkinter zu lernen, aber ich werde es sicher nächsten Monat lernen. das Skript unter:Konvertieren eines Skripts in GUI mit Tkinter

print ("this program measures gas flowrate in pipes with effect of elevation, making use of USCS unit") 
e=2.718 
Tb=520 
Pb=14.7 
f=float(input("Friction factor,f: ")) 
P1=float(input("upstream pressure,P1: ")) 
P2=float(input("downstream pressure,P2: ")) 
G=float(input("gas gravity,G: ")) 
Tf=float(input("average gas flowing temperature,Tf: ")) 
L=float(input("pipe line segment,L: ")) 
Z=float(input("gas compressibility factor at flowing temperature,Z: ")) 
D=float(input("pipe inside diameter,D: ")) 
H1=float(input("upstream elevation,H1: ")) 
H2=float(input("downstream elevation,H2: ")) 
s=float((0.0375*G)*((H2-H1)/(Tf*Z))) 
j=float((e**s-1)/s) 
Le=float(L*j) 
F=float(2/f**0.5) 
Q=38.77*F*(Tb/Pb)*((P1**2-(e**s*P2**2))/(G*Tf*Le*Z))**0.5*D**2.5 
print(j); 
print(s); 
print(Q); 

Dank viel für die Unterstützung

+0

Was möchten Sie als GUI haben? Die Ein- und Ausgabe? –

+0

Klingt, als könnten Sie [EasyGUI] (http://easygui.sourceforge.net/) verwenden. – martineau

+1

Also bitten Sie uns, Ihre Hausaufgaben für Sie zu machen? Dafür ist stackoverflow nicht zuständig. –

Antwort

2

Zunächst importieren tkinter und erstellen Sie das Hauptobjekt:

import Tkinter as tk 

master = tk.Tk() 

Dann erstellen Eingaben, die im Hauptfenster gehen. Für jeden Eingang ein Etikett und einen Eintrag für den Eingang erstellen:

Beispiel:

L1 = tk.Label(master, text="friction factor, f: ") 
L1.pack() 
L1.grid(row=0, column=0) 

E1 = tk.Entry(master, bd =5) 
E1.pack() 
E1.grid(row=0, column=1) 

# .... all other labels and input entries 
# And a label for the result: 

result = tk.Label(master) 
result.pack() 

Dann bekommt alle Werte aus den Einträgen zu Variablen, zum Beispiel:

f = float(E1.get()) 

hinzufügen Taste zur Berechnung drücken:

button = tk.Button(master, text='Calculate', command=calculate) 
button.pack() 

# calculate is a function that you will define, that gets all values from the input and returns the final value. Send also the result label to the function to change the text of the result label. 

def calculate(result, f, .....): 
    # Your calculating algorithem 
    output = "j: " + str(j) + ", Q: "+ str(Q) + ", s: "+str(s) 
    result.config(text=output) 

Am Ende Ihres Codes haben Sie diese Zeile, die die w ausführt indow:

master.mainloop() 

Wenn Sie weitere Erklärung benötigen, schreiben Sie bitte.

+0

[PEP8] (https://www.python.org/dev/peps/pep-0008/# importe) empfiehlt gegen Wildcard-Importe. –

+0

@BryanOakley Ich weiß, es ist eine schlechte Angewohnheit, aber er ist nicht wirklich auf der Suche nach der besten Lösung - nur eine, die funktionieren würde. –

+0

Wenn du weißt, dass es eine schlechte Angewohnheit ist, bringe anderen nicht bei, dies zu tun. Dies ist eine Person, die nichts über Tkinter weiß, und das erste, was du tust, ist ihnen eine schlechte Angewohnheit beizubringen. –