import sys
from tkinter import *
import time
class main:
def __init__(self, text=""):
self.root = Tk()
self.root.title("python editor")
self.Text = text
self.window = self.text_window(self, self.Text)
self.root.mainloop()
class text_window:
def __init__(self, master, text):
self.master = master
self.textBox = Text(master.root)
self.textBox.insert(END, text)
self.textBox.grid(row=0, sticky=NSEW, columnspan=2)
self.master.root.rowconfigure(0, weight=1)
self.master.root.columnconfigure(0, weight=1)
self.buttonOK = Button(master.root, text="run",
command=self.get_text)
self.buttonOK.bind('Enter',self.get_text)
self.buttonOK.grid(row=1, column=2)
self.buttonNO=Button(master.root, text="close window",command=self.abort)
self.buttonNO.grid(row=1, column=1)
def get_text(self):
text= self.textBox.get(1.0, END)
if ">>> " in text:
qwerty=str(exec(text[4:]))
return qwerty
else:
qwerty=exec(text)
return qwerty
def abort(self):
sys.exit()
def get_main(text=""):
m = main(text)
output = m.Text
return output
get_main(">>> ")
我正在尝试创建一个tkinter窗口,它将运行像IDLE这样的多行代码。 除了循环之外的所有东西都可以工作。
如果我尝试运行无限循环(While
循环),并尝试中止它,它不会中止并直接运行它,直到窗口显示(没有响应)。
我在Windows 10上使用python 3.6。