"pyqt5 autocomplete" Code Answer's

You're definitely familiar with the best coding language Whatever that developers use to develop their projects and they get all their queries like "pyqt5 autocomplete" answered properly. Developers are finding an appropriate answer about pyqt5 autocomplete related to the Whatever coding language. By visiting this online portal developers get answers concerning Whatever codes question like pyqt5 autocomplete. Enter your desired code related query in the search bar and get every piece of information about Whatever code related question on pyqt5 autocomplete. 

pyqt5 autocomplete

By Thoughtless TermiteThoughtless Termite on May 07, 2021
import json
from PyQt5 import QtCore, QtGui, QtWidgets, QtNetwork

API_KEY = "<API_KEY>"

class SuggestionPlaceModel(QtGui.QStandardItemModel):
    finished = QtCore.pyqtSignal()
    error = QtCore.pyqtSignal(str)

    def __init__(self, parent=None):
        super(SuggestionPlaceModel, self).__init__(parent)
        self._manager = QtNetwork.QNetworkAccessManager(self)
        self._reply = None

    @QtCore.pyqtSlot(str)
    def search(self, text):
        self.clear()
        if self._reply is not None:
            self._reply.abort()
        if text:
            r = self.create_request(text)
            self._reply = self._manager.get(r)
            self._reply.finished.connect(self.on_finished)
        loop = QtCore.QEventLoop()
        self.finished.connect(loop.quit)
        loop.exec_()

    def create_request(self, text):
        url = QtCore.QUrl("https://maps.googleapis.com/maps/api/place/autocomplete/json")
        query = QtCore.QUrlQuery()
        query.addQueryItem("key", API_KEY)
        query.addQueryItem("input", text)
        query.addQueryItem("types", "geocode")
        query.addQueryItem("language", "en")
        url.setQuery(query)
        request = QtNetwork.QNetworkRequest(url)
        return request

    @QtCore.pyqtSlot()
    def on_finished(self):
        reply = self.sender()
        if reply.error() == QtNetwork.QNetworkReply.NoError:
            data = json.loads(reply.readAll().data())
            if data['status'] == 'OK':
                for prediction in data['predictions']:
                    self.appendRow(QtGui.QStandardItem(prediction['description']))
            self.error.emit(data['status'])
        self.finished.emit()
        reply.deleteLater()
        self._reply = None

class Completer(QtWidgets.QCompleter):
    def splitPath(self, path):
        self.model().search(path)
        return super(Completer, self).splitPath(path)

class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Widget, self).__init__(parent)
        self._model = SuggestionPlaceModel(self)
        completer = Completer(self, caseSensitivity=QtCore.Qt.CaseInsensitive)
        completer.setModel(self._model)
        lineedit = QtWidgets.QLineEdit()
        lineedit.setCompleter(completer)
        label = QtWidgets.QLabel()
        self._model.error.connect(label.setText)
        lay = QtWidgets.QFormLayout(self)
        lay.addRow("Location: ", lineedit)
        lay.addRow("Error: ", label)

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = Widget()
    w.resize(400, w.sizeHint().height())
    w.show()
    sys.exit(app.exec_())

Add Comment

0

All those coders who are working on the Whatever based application and are stuck on pyqt5 autocomplete can get a collection of related answers to their query. Programmers need to enter their query on pyqt5 autocomplete related to Whatever code and they'll get their ambiguities clear immediately. On our webpage, there are tutorials about pyqt5 autocomplete for the programmers working on Whatever code while coding their module. Coders are also allowed to rectify already present answers of pyqt5 autocomplete while working on the Whatever language code. Developers can add up suggestions if they deem fit any other answer relating to "pyqt5 autocomplete". Visit this developer's friendly online web community, CodeProZone, and get your queries like pyqt5 autocomplete resolved professionally and stay updated to the latest Whatever updates. 

Whatever answers related to "pyqt5 autocomplete"

View All Whatever queries

Whatever queries related to "pyqt5 autocomplete"

Browse Other Code Languages

CodeProZone