выражение python в латекс - PullRequest
       7

выражение python в латекс

0 голосов
/ 25 сентября 2018

Я пытаюсь отобразить уравнения с помощью графического интерфейса.Я использую латекс и холст.Тем не менее, я получаю сообщение об ошибке ValueError: KeyPress событие keysym = Return keycode = 36 char = '\ r' x = 266 y = 8

это должно работать, потому что у меня естьуже преобразованные выражения Python в латекс.

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import matplotlib
import matplotlib.pyplot as plt
from tkinter import *
from sympy import *
matplotlib.use('TkAgg')

root=Tk()
frame=Frame(root)
frame.pack()

frame1= Frame()
frame1.pack()
caracter=StringVar()

def  result(caracter):
    a = str(caracter)
    text1=latex(a)
    ax.clear()
    ax.text(0.2, 0.6, "$"+text1+"$", fontsize = 6)  
    canvas.draw()



def element(num):
    caracter.set(caracter.get()+num)

#-----------------------------SCREEN------------
screen=Entry(frame, width=50, textvariable=caracter)
screen.pack()
screen.grid(row=1, column=1, pady=10, columnspan=5)
#-----------------------BUTTONS-----------------------
go=Button(frame, height=1, text="Go")
go.grid(row=1, column=6)

Buttonx=Button(frame, text="x", width=5, padx=0, pady=2, command=lambda:element("x"))
Buttonx.grid(row=2, column=6)

#--------CANVAS ---------------    
label = Label(frame1)
label.pack()



fig = matplotlib.figure.Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(111)

canvas = FigureCanvasTkAgg(fig, master=label)
canvas.get_tk_widget().pack(side=TOP, fill=BOTH, expand=1)
canvas._tkcanvas.pack(side=TOP, fill=BOTH, expand=1)

ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)

root.bind('<Return>', result)



root.mainloop()

Это самый короткий код для воспроизведения проблемы.Любая помощь или намек будут оценены.Большое спасибо заранее

1 Ответ

0 голосов
/ 26 сентября 2018

Вы передаете символ, связанный с <RETURN>, в вашу функцию result.Поскольку параметр называется caracter, это скрывает переменную caracter, объявленную ранее как tk.StringVar.

, что-то вроде этого должно дать ожидаемый результат:

def result(dummy_c):
    a = caracter.get()
    text1 = latex(a)
    ax.clear()
    ax.text(0.2, 0.6, "$"+text1+"$", fontsize = 6)  
    canvas.draw()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...