Python 在PyQt5 GUI中使用破折号(plot.ly)
在使用PyQt5创建的GUI时,尝试使用Dash(plotly)创建仪表板时遇到问题 我已尝试将以下示例代码作为模块并在代码末尾使用:Python 在PyQt5 GUI中使用破折号(plot.ly),python,pyqt5,plotly,Python,Pyqt5,Plotly,在使用PyQt5创建的GUI时,尝试使用Dash(plotly)创建仪表板时遇到问题 我已尝试将以下示例代码作为模块并在代码末尾使用: import dash import dash_core_components as dcc import dash_html_components as html def run_dash(data, layout): app = dash.Dash() app.layout = html.Div(children=[ html.H
import dash
import dash_core_components as dcc
import dash_html_components as html
def run_dash(data, layout):
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dcc.Graph(
id='example-graph',
figure={
'data': data,
'layout': layout
}
)
])
app.run_server(debug=True)
但是每次出现错误时,我都无法在“”中找到“\uu main\uuuuuuuuuuuuuuuuuuuuuuuuu”模块
我知道,最初,要创建短跑,需要使用如下主防护装置:
if __name__ == '__main__':
app.run_server(debug=True)
但是我的主窗口已经有了一个主防护装置,所以我不知道如何使两者一起工作。作为参考,这是我的主窗口主防护:
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())
解决方案是在另一个线程中执行Dash,在另一个线程中执行Dash时可能会出现问题,但使用Dash会得到以下结果:
import sys
import threading
from PyQt5 import QtWidgets
import dash
import dash_core_components as dcc
import dash_html_components as html
def run_dash(data, layout):
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dcc.Graph(
id='example-graph',
figure={
'data': data,
'layout': layout
})
])
app.run_server(debug=False)
class MainWindow(QtWidgets.QMainWindow):
pass
if __name__ == '__main__':
data = [
{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
{'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
]
layout = {
'title': 'Dash Data Visualization'
}
threading.Thread(target=run_dash, args=(data, layout), daemon=True).start()
app = QtWidgets.QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())
随着问题的深入,我已经更新了我的问题,并提供了可能更有用的代码。如果仍然不正确,请毫不犹豫地通知我。