matplotlib - написать TeX в форме Qt

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

Спасибо.


person demalexx    schedule 18.04.2010    source источник


Ответы (1)


Как вариант:

    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()
person demalexx    schedule 18.04.2010
comment
Это лучшее решение примерно 12 вопросов, которые я сегодня задавал в stackoverflow о рендеринге TeX. - person Anti Earth; 01.01.2013
comment
Откуда Figure? матплотлиб или pyqt? - person user89; 28.11.2014
comment
Когда текст выходит за пределы заголовка рисунка, как можно использовать полосу прокрутки или что-то подобное для доступа к тексту? - person 8hantanu; 21.07.2018