Как отобразить математический набор текста (MathJax, LaTeX и т. Д.) В Qt, используя PyQt5?

Я довольно новичок в Qt и PyQt5 и хотел бы отобразить математические наборы в окне GUI. В частности, я бы хотел, чтобы он мог обновляться динамически. Я не могу найти какую-либо полезную информацию о том, как сделать это с PyQt5.

Я тщательно исследовал, как это сделать

Один, казалось бы, уместный ответ найден здесь , но решения не дано, и он фактически не решает проблему показа набора текста. математика в графическом интерфейсе.

Другой, казалось бы, соответствующий ответ находится здесь , но использует PySide (и python 2.7) и дает нелепо и неоправданно сложный и устаревший ответ.

-1
задан clockelliptic 25 June 2019 в 19:54
поделиться

1 ответ

1110 Я выяснил, как это сделать довольно легко и просто. Приведенный ниже пример требует подключения к Интернету для доступа к модулю MathJax JS.

  1. Сначала импортируйте QApplication и QWebEngineView .

    import sys
    from PyQt5.QtWidgets import QApplication
    from PyQt5.QtWebEngineWidgets import QWebEngineView
    
  2. Затем напишите многострочную строку, содержащую HTML-код. Код должен импортировать модуль JavaScript MathJax. Затем напишите свое математическое уравнение ...

    pageSource = """
                 <html><head>
                 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML">                     
                 </script></head>
                 <body>
                 <p><mathjax style="font-size:2.3em">$u = \int_{-\infty}^{\infty}(awesome)\cdot du$</mathjax></p>
                 </body></html>
                 """
    
  3. Наконец, создайте экземпляр QApplication, создайте экземпляр QWebEngineView и настройте WebEngineView для отображения вашего недавно написанного HTML-кода:

    app = QApplication(sys.argv)
    webView = QWebEngineView()
    webView.setHtml(pageSource)
    
  4. Дон не забудьте вызвать show в вашем WebEngineView.

    webView.show()
    sys.exit(app.exec_())
    

Если вы хотите создать приложение, которое не требует подключения к Интернету для запуска файла MathJax JS, просто скопируйте модуль JS и сохраните его в виде строки в своем коде.

2
ответ дан clockelliptic 25 June 2019 в 19:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: