У меня есть HTML-страница, содержащая некоторые элементы <datalist>
.
Я могу правильно запустить ее в Chrome, но при запуске с использованием Python-PyQt5 Datalist не работает должным образом (он работает кактекстовое поле, т. е. раскрывающийся список не отображается).
В Python я использую его с помощью PyQt5: load(QtCore.QUrl.fromLocalFile(filepath))
.
Где filepath
- это путь для index.html
.
. Я просмотрел несколько статей и узнал, что HTML Datalist не поддерживается в старых версиях Webkit Engines, но нашел некоторые обходные пути, такие как: Datalist-polyfill но они тоже не работают.
Есть ли обходной путь для этого, или Datalist здесь просто невозможен?
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
работать на данный момент.