如何将一个html文件加载/显示到我的QTextBrowser窗口部件中?

9 浏览
0 Comments

如何将一个html文件加载/显示到我的QTextBrowser窗口部件中?

我正在用PyQt5自学如何使用Python编写UI界面。其中一件我想要做的事情是从与我的应用程序保存在同一文件夹中的HTML文档中提取并显示其内容。看起来QTextBrowser是适合加载/显示HTML文档的适当小部件,但我不知道要使用哪个命令以及如何使用它。很抱歉这可能是一个愚蠢的问题,但我对Python和UI编程都还很陌生,所以我很难理解文档并找出我的错误。

QTextBrowser的文档中提到了QUrl、setSource和source这些方法可以用于加载文档。我尝试将我的HTML文档的名称放入这些方法中,但它们都没有起作用。userSet是从用户输入确定的数据集,并且用户输入和数据生成都正常工作,因为我能够使用QTableView小部件显示数据表。

我期望这个应用程序能够显示我保存在userHexbin.html中的十六进制图,但是我得到了以下错误- TypeError: source(self): too many arguments。我不知道我应该在哪里放入我的文档名称。

编辑:

从bokeh.plotting中导入figure、output_file、show、save

从bokeh.resources中导入CDN

从pandas中导入pd

从PyQt5中导入QtCore、QtGui、uic、QtWidgets

从PyQt5.QtWidgets中导入QApplication、QWidget、QPushButton、QMessageBox、QTableWidget、QTableWidgetItem

app = QApplication([])

button = QPushButton('Submit')

def on_button_clicked():

p = figure(plot_width=300, plot_height=300)

data = {'Day': [0, 1, 2, 3, 0, 1], 'Num': [0, 0, 1, 1, 2, 3]}

df = pd.DataFrame(data)

p.hexbin(df.Day, df.Num, size=.5)

html = output_file("test.html")

save(p)

output = QTextBrowser()

output.setSource(QtCore.QUrl.fromLocalFile("test.html"))

button.clicked.connect(on_button_clicked)

button.show()

app.exec_()

0