31ページと32ページにあるチュートリアルhttp://www.ittc.ku.edu/~niehaus/classes/448-s04/448-standard/tkinter-intro.pdfに従っています。
2つのウィンドウが表示されます。1つは[OK]ボタンと[キャンセル]ボタン、2つのエントリボックスがあり、もう1つは空白です。[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