Я учу себя, как кодировать пользовательский интерфейс на python с PyQt5.Я хочу взять HTML-документ, сохраненный в той же папке, что и мое приложение, и отобразить его содержимое.Похоже, QTextBrowser был подходящим виджетом для загрузки / отображения html-документов, но у меня возникли проблемы с выяснением, какую команду использовать и как ее использовать.Извините, если это глупый вопрос, но я все еще плохо знаком с Python и кодированием пользовательского интерфейса, поэтому у меня возникают проблемы с пониманием документации и с тем, что я делаю неправильно.
Упоминается документация для QTextBrowserQUrl, setSource и source для способов загрузки документов.Я попытался поместить название моего HTML-документа в каждый из них, но ни один из них не работает.UserSet - это набор данных, определенный из пользовательского ввода, и пользовательский ввод и генерация данных работают нормально, потому что я смог отобразить таблицу данных с помощью виджета QTableView.
import sys
from PyQt5 import QtCore, QtGui, uic, QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox, QTableWidget, QTableWidgetItem
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.submitButton.clicked.connect(self.handleInput)
self.htmlView = QtWidgets.QTextBrowser(self)
def handleInput(self):
#Display Hexbin
p = figure(plot_width = 300, plot_height = 300)
p.hexbin(userSet.day, userSet.score, size = 1)
html = output_file("userHexbin.html")
save(p)
self.oLayout.addWidget(self.htmlView)
self.htmlView.source("userHexbin.html")
Я ожидаю, что приложение отобразитЗаговор в шестнадцатеричном формате Я сохранил в userHexbin.html, но я получаю следующую ошибку - Ошибка типа: источник (само): слишком много аргументов.Я не знаю, где еще я должен поставить название документа.
РЕДАКТИРОВАТЬ:
from bokeh.plotting import figure, output_file, show, save
from bokeh.resources import CDN
import pandas as pd
import sys
from PyQt5 import QtCore, QtGui, uic, QtWidgets
from PyQt5.QtWidgets import *
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_()