我正在使用Python 2.5(用于Autodock)。我已经创建了一个简单的GUI来从用户获取值,我试图使用上述值生成输出文件,但我不断收到如下错误:“TypeError:参数1必须是字符串或只读字符缓冲区,而不是实例”以下是我的一些代码:
import sys
from Tkinter import * #for GUI
from tkFileDialog import * #for browse button function
mGui = Tk()
mGui.geometry('500x400+300+100')#dimenstions and position from top left
mGui.title('Autodock compiler')#window title
...
def generate():
conf = open('invoke(browsebutton3)''mEntry10'".txt","w")
...
conf.write("center_x =")
conf.write(e1)
conf.write("\n")
...
conf.close()
return
...
e1=StringVar()
mlabel3 = Label(text='Center x')
mlabel3.place (x=30,y=140)
mEntry1 = Entry(mGui,textvariable=e1)
mEntry1.place(x=100,y=140)
我已包含相关代码。
答案 0 :(得分:0)
您必须通过调用get
方法获取StringVar的值:
conf.write(e1.get())
下面是一个非常简单的演示脚本:
from Tkinter import StringVar, Tk
Tk()
s = StringVar()
s.set('word')
print s, type(s)
print s.get(), type(s.get())
终端输出:
PY_VAR0 <type 'instance'>
word <type 'str'>