上述代码还是有报错:TypeError: setHtml(self, str, baseUrl: QUrl = QUrl()): argument 'baseUrl' has unexpected type 'str'
时间: 2024-01-11 11:04:45 浏览: 148
小程序报错: Uncaught TypeError: Converting circular structure to JSON
5星 · 资源好评率100%
非常抱歉,我之前给出的代码中有一个错误。在`setHtml`方法中,`baseUrl`参数应该是一个`QUrl`对象,而不是一个字符串。
请按照以下修改后的代码进行操作:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt5.QtWebEngineWidgets import QWebEngineView
from pyecharts import options as opts
from pyecharts.charts import Bar
class ChartWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
layout = QVBoxLayout(self)
self.webview = QWebEngineView(self)
layout.addWidget(self.webview)
# 创建一个pyecharts的Bar实例,并添加数据
bar = (
Bar()
.add_xaxis(["A", "B", "C", "D", "E"])
.add_yaxis("Series", [1, 3, 2, 4, 5])
.set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart"))
)
# 将图表转换为HTML,并加载到QWebEngineView中
self.webview.setHtml(bar.render_embed(), baseUrl=QtCore.QUrl.fromLocalFile(QtCore.QDir.current().absolutePath()))
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
chart_widget = ChartWidget(self)
self.setCentralWidget(chart_widget)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
请注意,我在设置`baseUrl`时使用了`QtCore.QUrl.fromLocalFile(QtCore.QDir.current().absolutePath())`,这将设置当前目录为基本URL。
运行修改后的代码,你将能够在PyQt5中展示pyecharts的图表。如果还有其他问题,请随时提问。
阅读全文