matplotlib - напишите TeX в форме Qt - PullRequest
10 голосов
/ 18 апреля 2010

Я хотел бы добавить некоторый текст TeX в мою форму Qt, например, метку - просто текст, без графика, без линий, без границ, только TeX. Я подумал что-то вроде этого: визуализировать TeX в растровое изображение, а затем поместить это растровое изображение в форму, например, в QLabel. Или еще лучше - используйте какой-нибудь бэкэнд, добавьте его в форму и используйте что-то tex_label.print_tex(<tex code>). Кажется, у matplotplot есть парсеры TeX, но я не могу понять, как их использовать ...

Спасибо.

1 Ответ

9 голосов
/ 18 апреля 2010

Как вариант:

    from matplotlib.figure import Figure
    from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg

    # Get window background color
    bg = self.palette().window().color()
    cl = (bg.redF(), bg.greenF(), bg.blueF())

    # Create figure, using window bg color
    self.fig = Figure(edgecolor=cl, facecolor=cl)

    # Add FigureCanvasQTAgg widget to form
    self.canvas = FigureCanvasQTAgg(self.fig)        
    self.tex_label_placeholder.layout().addWidget(self.canvas)

    # Clear figure
    self.fig.clear()

    # Set figure title
    self.fig.suptitle('$TeX$',
                      x=0.0, y=0.5, 
                      horizontalalignment='left',
                      verticalalignment='center')
    self.canvas.draw()
...