0

我正在使用 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)

我已经包含了相关的代码。

4

1 回答 1

0

您必须通过调用方法来获取 StringVar 的值get

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'>
于 2013-11-27T17:40:04.417 回答