在PyQT5中显示HTML数据列表

时间:2019-06-03 10:28:25

标签: python html pyqt pyqt5 qtwebengine

我有一个HTML页面,其中包含一些<datalist>元素。
我可以在Chrome中正常运行它,但是使用Python-PyQt5运行它时,数据列表无法按需运行(它作为文本框运行,即未显示下拉列表)。
在Python中,我使用PyQt5:load(QtCore.QUrl.fromLocalFile(filepath))运行它。
filepathindex.html的路径。

我浏览了几篇文章,并且知道较旧的Webkit引擎不支持HTML数据列表,但是发现了一些解决方法,例如:Datalist-polyfill,但是它们也不起作用。

是否有解决方法,或者在这里无法使用数据列表?

HTML代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<body>

	<div id="formContainer">
		<form id="mainForm">
			<div class="form-label-group">
				<input list="subject-area" name="subjectArea" class="form-control" placeholder="Select or Enter a Subject Area">
			</div>
		</form>
	</div>
	
	<div id="datalistContainer">
		<datalist id="subject-area" class="form-control" style="display: none;">
			<option value="Account" class="form-control">Account</option>
			<option value="Adjustments" class="form-control">Adjustments</option>
			<option value="Alliance Sales" class="form-control">Alliance Sales</option>
			<option value="Assets" class="form-control">Assets</option>
			<option value="Business Plan" class="form-control">Business Plan</option>
			<option value="Calendar" class="form-control">Calendar</option>
			<option value="Chargeback" class="form-control">Chargeback</option>
			<option value="Company" class="form-control">Company</option>
		</datalist>
	</div>
</body>

Python代码:

import os
import sys
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets


class WebPage(QtWebEngineWidgets.QWebEngineView):
    def __init__(self, parent=None):
        super().__init__(parent)

        filepath = os.path.abspath(
            os.path.join(os.path.dirname(__file__), "temp.html")
        )
        self.load(QtCore.QUrl.fromLocalFile(filepath))


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    web = WebPage()
    web.show()
    sys.exit(app.exec_())


注意:Python代码尚未更新。我要做的就是暂时使datalist工作。

0 个答案:

没有答案