Как отобразить математический набор текста (MathJax, LaTeX и т. Д.) В Qt, используя PyQt5? - PullRequest
0 голосов
/ 25 июня 2019

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

Я тщательно изучил, как это сделать

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

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

1 Ответ

2 голосов
/ 25 июня 2019

Я понял, как это сделать довольно легко и просто. В приведенном ниже примере требуется подключение к Интернету для доступа к модулю 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. Не забудьте вызвать шоу в вашем WebEngineView.

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

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

...