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