Как встроить карту Plotly в приложение PySide6, созданное с помощью Qt Designer?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как встроить карту Plotly в приложение PySide6, созданное с помощью Qt Designer?

Сообщение Anonymous »

Я успешно встроил карту Plotly в приложение PySide6 с помощью QWebEngineView. Однако при использовании интерфейса, который я создал с помощью Qt Designer, и попытке встроить карту в определенную страницу QStackedWidget, карта появляется, но теряет интерактивность. Мне нужно переключиться на другую страницу и вернуться, чтобы она обновилась.
Код для простого отображения карты следующий:

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

import sys import plotly.express as px  from PySide6.QtWebEngineWidgets import QWebEngineView

def show_qt(fig):
raw_html = ''
raw_html += ''
raw_html += ''
raw_html += po.plot(fig, include_plotlyjs=False, output_type='div')
raw_html += ''

fig_view = QWebEngineView()
fig_view.setHtml(raw_html)
fig_view.show()
fig_view.raise_()
return fig_view

if __name__ == '__main__':
app = QApplication(sys.argv)

# Load GeoJSON data
with open('map1.geojson') as f:
geojson_data = json.load(f)

# DataFrame with generic region names
df = pd.DataFrame({
"region": [
"Test Region 1",
"Test Region 2",
"Test Region 3",
"Test Region 4",
"Test Region 5",
"Test Region 6",
"Test Region 7",
"Test Region 8",
"Test Region 9",
"Test Region 10",
"Test Region 11",
"Test Region 12"
],
"unemp": [
1.2,
5.2,
7.1,
6.5,
4.8,
8.2,
6.9,
9.4,
7.6,
5.0,
11.3,
6.7
]
})

fig = px.choropleth(
df,
geojson=geojson_data,
locations='region',  # Match using 'region'
featureidkey="properties.region",  # Use 'region' from GeoJSON
color='unemp',  # Use the 'unemp' column
color_continuous_scale="Viridis",
range_color=(0, 12),
labels={'unemp': 'Unemployment Rate'}
)

fig.update_geos(
visible=False,  # Hide all the map elements
showland=False,  # Hide land
showocean=False,  # Hide oceans
showcountries=False,  # Hide countries
showcoastlines=False  # Hide coastlines
)

fig.update_geos(fitbounds="locations")
# Show the map directly in the PySide6 interface
fig_view = show_qt(fig)

sys.exit(app.exec())
Пока все работает нормально.
Страница и настройки, которые у меня есть в Qt Designer
Скриншот Qt Designer
Я преобразовал предыдущий код в класс под названием mapwidget, а затем в своем основном файле я просто вызываю виджет карты в классе главного окна

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

self.map_widget = MapWidget()  # Create the map widget

# Add the MapWidget to the layout of page_map
self.ui.page_map.layout().addWidget(self.map_widget)
Затем я пытаюсь добавить его на страницу

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

 if btnWidget.objectName() == "btn_map":
self.ui.stackedWidget.setCurrentWidget(self.ui.page_map)
Это работает, но я вообще не могу взаимодействовать с картой.

Подробнее здесь: https://stackoverflow.com/questions/792 ... t-designer
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как встроить карту Plotly в приложение PySide6, созданное с помощью Qt Designer?
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Встроить виджет Pyside6/Pyqt5 в приложение Qt C ++?
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Встроить виджет Pyside6/Pyqt5 в приложение Qt C ++?
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Встроить виджет Pyside6/Pyqt5 в приложение Qt C ++?
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Pyside6-Designer: Custom Promoted Vidget Export Code Python Code
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

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