Попытка загрузитьplotly-latest.min.js локально для Pyside6 WebEnginePython

Программы на Python
Ответить
Anonymous
 Попытка загрузитьplotly-latest.min.js локально для Pyside6 WebEngine

Сообщение Anonymous »

Я создаю приложение с графическим интерфейсом PySide6, которое использует Plotly для интерактивной визуализации. Первоначально я использовал Plotly CDN для загрузки скриптаplotly-latest.min.js в свой HTML, и все работало нормально. Однако я хотел бы переключиться с использования CDN на загрузку сценария локально из файла на моем компьютере.
Вот тестовый код, который в настоящее время работает с CDN:

Код: Выделить всё

import sys
import plotly.graph_objects as go
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout
from PySide6.QtWebEngineWidgets import QWebEngineView
import plotly.offline as po

class GraphWidget(QWebEngineView):
def __init__(self):
super().__init__()

# Create a random graph (scatter plot example)
fig = go.Figure(data=go.Scatter(x=[1, 2, 3, 4, 5], y=[5, 4, 3, 2, 1], mode='lines+markers'))

# Convert the figure to HTML
raw_html = """



  

body {{
margin: 0;
background-color: rgb(44, 49, 60); /* Ensure the body matches the dark theme */
}}
.plot-container {{
width: 100%; /* Ensure plot takes full width */
height: 100%; /* Ensure plot takes full height */
}}



{}


""".format(po.plot(fig, include_plotlyjs=False, output_type='div'))

# Set the HTML for the graph in the QWebEngineView
self.setHtml(raw_html)

class MainWindow(QWidget):
def __init__(self):
super().__init__()

self.setWindowTitle('Plotly Graph in GUI')
self.setGeometry(100, 100, 800, 600)

# Create the Graph widget
self.graph_widget = GraphWidget()

# Set the layout
layout = QVBoxLayout(self)
layout.addWidget(self.graph_widget)

self.show()

if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())

Это прекрасно работает, но теперь я хочу использовать локальную версиюplotly-latest.min.js, чтобы не полагаться на Интернет. Я попытался изменить тег , чтобы загрузить файл локально, указав его локальный путь, например: Однако эти изменения не сработали, и я не могу правильно загрузить файл. Я протестировал некоторые решения, упомянутые в этом вопросе о переполнении стека. Использование локального файла в формате html для веб-движка PyQt5, но ни одно из них, похоже, не работает в моем случае.
Может ли кто-нибудь помочь мне изменить этот код? загрузитьplotly-latest.min.js по локальному пути вместо использования CDN? Будем очень признательны за любые советы по решению этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -webengine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»