我目前有一个主python脚本(main.py
),它从第二个脚本(input.py
)读取输入,用户可以修改该脚本。用户在第二个脚本中设置诸如维数(ndim
)、点数(npts
)等变量,并使用以下命令将这些变量读入main.py
:
filename = sys.argv[-1]
m = __import__(filename)
ndim = m.ndim
npts1 = m.npts1
npts2_recorded = m.npts2_recorded
脚本由以下命令执行:
python main.py input
我想用一个GUI替换input.py
。Tkinter似乎是一个明智的起点,我可以看到如何创建一个GUI,使用户能够设置他们本来在input.py
中设置的各种选项。但是,我不知道如何将这些信息从GUI传递给main.py
。有没有一种等价于__import(filename)__
的方法可以从用户在GUI中所做的选择中提取信息,或者有没有另一种方法可以达到同样的效果。
基于以下答案的最小(非)工作示例:
这段代码创建文件example.txt
,但是给block1
的文本不会写入该文件。
from Tkinter import *
def saveCallback():
with open("example.txt",'w') as outfile:
outfile.write(block1.get())
def UserInput(status,name):
optionFrame = Frame(root)
optionLabel = Label(optionFrame)
optionLabel["text"] = name
optionLabel.pack(side=LEFT)
var = StringVar(root)
var.set(status)
w = Entry(optionFrame, textvariable= var)
w.pack(side = LEFT)
optionFrame.pack()
return w
if __name__ == '__main__':
root = Tk()
block1 = UserInput("", "Block size, dimension 1")
Save_input_button = Button(root, text = 'Save input options', command = saveCallback())
Save_input_button.pack()
root.mainloop()
使用一个文件,将GUI中的选择保存到一个文件中(就像以前对input.py所做的那样),然后读取该文件。
所以,在你的主要.py
这里唯一的缺点是必须在
main.py
脚本中确保GUI已经关闭。为此,您可以使用subprocess模块,这里有几个函数可用于块,直到进程返回或结束。使用这种方法,您只需键入:
在
main.py
里面的某个地方:将条目值写入文件的代码示例
相关问题 更多 >
编程相关推荐