我正在按照第31页和第32页http://www.ittc.ku.edu/~niehaus/classes/448-s04/448-standard/tkinter-intro.pdf中的教程进行操作。
我有两个窗口,一个是OK和取消按钮和两个入口盒,另一个是空白。当我单击确定或取消时,该窗口消失,但另一个空白窗口冻结,我甚至无法关闭。关闭它的唯一方法是关闭命令提示符。
运行时出现以下错误。
first = string.atoi(self.e1.get())
NameError: global name 'string' is not defined
我按照评论中的说明调整了dialog2.py。 tkSimpleDialog.py根本没有改变(上面链接的第31页)
# File: dialog2.py
import tkSimpleDialog #added this
import os #added this
from Tkinter import * #added this
class MyDialog(tkSimpleDialog.Dialog):
def body(self, master):
Label(master, text="First:").grid(row=0)
Label(master, text="Second:").grid(row=1)
self.e1 = Entry(master)
self.e2 = Entry(master)
self.e1.grid(row=0, column=1)
self.e2.grid(row=1, column=1)
return self.e1 # initial focus
def apply(self):
first = string.atoi(self.e1.get())
second = string.atoi(self.e2.get())
print first, second # or something
root = Tk() #added this
d = MyDialog(root) #added this
答案 0 :(得分:4)
您需要导入string
模块。
虽然更好的方法(不需要导入字符串)是使用int
内置函数。即改为:
first = int(self.e1.get())
等
我猜测你正在使用的参考手册是为一个非常旧版本的python创建的......