Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tkinter의 텍스트 상자에 실시간으로 LaTex를 표시하는 방법은 무엇입니까?

<시간/>

Python Matplotlib 라이브러리는 데이터 포인트를 시각화하고 데이터를 분석하기 위해 그래프와 플롯을 그려야 하는 응용 프로그램에서 유용합니다. LaTex 구문을 처리할 수 있는 tkinter 애플리케이션을 생성한다고 가정해 봅시다.

LaTex 구문은 공식, 과학 표기법, 수학 문자 및 구두점과 같은 과학 문서를 준비하는 데 사용됩니다. 응용 프로그램을 준비하려면 matplotlib를 사용해야 합니다. 및 TkAgg (Tkinter의 Matplotlib용 백엔드 API) 모듈. 다음 단계는 응용 프로그램 기능과 위젯을 구성하는 데 사용됩니다.

  • Matplotlib, Tkinter, Ttk(위젯 스타일 지정용), TkAgg 등과 같은 필수 라이브러리를 가져옵니다.
  • 프레임을 추가하고 그 안에 레이블과 항목 위젯을 정의합니다.
  • Figure()를 사용하여 Figure의 크기를 정의합니다. Matplotlib의 메소드 이 그림은 캔버스에 구문을 그리는 데 사용할 수 있습니다.
  • 이제 TkAgg를 사용하여 그림을 정의할 Canvas 위젯을 만듭니다. .
  • Entry 위젯의 내용을 가져오고 Matplotlib의 사전 정의된 함수(예:text())를 사용하여 그림의 텍스트를 변환하는 함수를 정의합니다. .
  • Return 또는 Click 이벤트를 함수와 결합한 후 출력을 캔버스에 표시합니다.

# Import required libraries
from tkinter import *
from tkinter import ttk
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

# Use TkAgg in the backend of tkinter application
matplotlib.use('TkAgg')

# Create an instance of tkinter frame
win = Tk()

# Set the size of the window
win.geometry("700x350")

# Set the title of the window
win.title("LaTex Viewer")

# Define a function to get the figure output
def graph(text):
   # Get the Entry Input
   tmptext = entry.get()
   tmptext = "$"+tmptext+"$"
   # Clear any previous Syntax from the figure
   wx.clear()
   wx.text(0.2, 0.6, tmptext, fontsize = 20)
   canvas.draw()
# Create a Frame object
frame = Frame(win)
frame.pack()
# Create an Entry widget
var = StringVar()
entry = Entry(frame, width=70, textvariable=var)
entry.pack()

# Add a label widget in the frame
label = Label(frame)
label.pack()

# Define the figure size and plot the figure
fig = matplotlib.figure.Figure(figsize=(7, 4), dpi=100)
wx = 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)

# Set the visibility of the Canvas figure
wx.get_xaxis().set_visible(False)
wx.get_yaxis().set_visible(False)

win.bind('<Return>', graph)
win.mainloop()

출력

위의 코드를 실행하면 Entry 위젯과 Figure 플롯이 있는 창이 표시됩니다. 이제 결과 출력을 LaTex 형식으로 표시하려면 과학적 표현을 입력하십시오.

Tkinter의 텍스트 상자에 실시간으로 LaTex를 표시하는 방법은 무엇입니까?