Я пытаюсь создать программу, в которой вы можете ввести код в записи, и программа выполнит код.Моя программа exec не работает
Когда вы нажмете Enter, программа создаст еще одну запись под предыдущей.
Когда вы нажмете кнопку «Execute Program», весь написанный вами код будет выполнен.
from tkinter import *
class Application(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.grid()
self.entry1=Entry(self)
self.entry1.grid(row=0, column=0, sticky=W)
self.bttn1=Button(self, text="Execute code", command=self.execute_code)
self.bttn1.grid(row=1, column=9, sticky=W)
self.rows=0
self.entry1.bind("<Return>", self.down)
def execute_code(self):
self.code=self.entry1.get()
try:
exec(self.code)
except:
print("There is something wrong with this code!")
def down(self,event):
self.rows+=1
entry=Entry(self)
entry.grid(row=self.rows, column=0, sticky=W)
self.code=self.code+"\n"+entry.get()
entry.bind("<Return>", self.down)
root=Tk()
root.title("Executing code")
root.geometry("500x500")
app=Application(root)
Проблема в том, что когда я нажимаю кнопку, она выполняет только первую запись.
Может кто-нибудь сказать мне, что не так в моем коде?
Вместо того чтобы добавлять все больше и больше полей одной линии ввода , как насчет использования одного многострочного текстового поля? –
Выполняет для say print (3), что вы пытаетесь сделать? –
И он падает, когда вы нажимаете Enter. –