0
我目前正在使用python編寫一個CFD程序,該腳本在計算中使用了大量預定義的全局變量。使用GUI輸入變量並在Python中運行腳本
我想製作一個GUI,允許用戶輸入所有這些變量,然後運行腳本並在主控制檯中返回結果。我曾嘗試使用Tkinter來做到這一點,但無法找到設置全局變量的方法。
下面是一個簡單的GUI,我嘗試過設計完成一個更簡單的計算,也需要設置全局變量。
'''GUI 2'''
import Tkinter
factor = 10
def GUIrun(n):
return n * factor
class simpleGUI(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent=parent
def initialize(self):
self.grid()
self.entryVariable = Tkinter.StringVar()
self.entry = Tkinter.Entry(self,textvariable=self.entryVariable)
self.entry.grid(column=0,row=0,sticky='EW')
self.entry.bind("<Return>",self.OnPressEnter)
self.entryVariable.set("n")
button=Tkinter.Button(self,text="Run",command=self.OnButtonClick)
button.grid(column=1,row=0)
self.labelVariable = Tkinter.StringVar()
label=Tkinter.Label(self,textvariable=self.labelVariable,
anchor="w",fg="white",bg="blue")
label.grid(column=0,row=1,columnspan=2,sticky='EW')
self.labelVariable.set("Hello!")
self.grid_columnconfigure(0,weight=1)
self.resizable(True,False)
self.entry.focus_set()
self.entry.selection_range(0, Tkinter.END)
def OnPressEnter(self,event):
n = self.entryVariable.get()
self.labelVariable.set("n = " +self.entryVariable.get())
self.entry.focus_set()
self.entry.selection_range(0, Tkinter.END)
def OnButtonClick(self):
n=self.entryVariable.get()
return GUIrun(n)
if __name__=="__main__":
app=simpleGUI(None)
app.title('poster')
app.initialize()
app.mainloop()
我希望得到任何幫助 謝謝
你的問題是什麼?爲什麼你需要全局變量?如果你確實有一個腳本使用了很多全局值,我認爲你應該重寫並將它們包裝在一個類中。 –