Поле ввода Python / PyQT падает во время автозаполнения, если значение не выбрано первым - PullRequest
0 голосов
/ 09 февраля 2019

Моя программа извлекает данные из жестко запрограммированного словаря, а также добавляет их из .csv, поэтому, когда я выбираю фамилию в своем lineEdit, два других поля ввода заполняются соответствующим адресом электронной почты и номером телефона.

Когда я нажимаю на строку lineEdit и начинаю вводить имя, функция автозаполнения не активируется.Если я нажимаю клавишу ввода после ввода имени, которое существует в моем словаре, вся моя программа падает.Однако, если я сначала выберу раскрывающийся список и выберу произвольное имя, оно активирует автозаполнение, и я могу ввести любое другое имя, найти его и нажать клавишу ввода, чтобы заполнить другие поля.

словарь:

autocompleteList2 = {
' ': [' ', ' '],
'Adams': ['Adams@gmail.com', '555-555-5555'],

Как я манипулировал другими моими входами:

class Window(QtWidgets.QMainWindow, Ui_MainWindow):        
    def __init__(self, cList):
        super().__init__()

        self.setupUi(self)                                 

        self.cList = cList
        self.Input_7.addItems(sorted(cList.keys())) 
        self.Input_7.activated[str].connect(self.onActivatedText)

    @QtCore.pyqtSlot(str)
    def onActivatedText(self, text):
        self.Input_8.setText(self.cList[text][0])
        self.Input_9.setText(self.cList[text][1])

Словарь, связанный:

if __name__ == '__main__':
    import sys
    app  = QtWidgets.QApplication(sys.argv)
    w = Window(autocompleteList2)
    w.show()
    app.setStyle('Fusion')
    palette = QtGui.QPalette()

Как я могу получить автозавершить активацию, как только я нажму на Input_7 (lineEdit)?

1 Ответ

0 голосов
/ 09 февраля 2019

Исправлено удалением пробелов:

autocompleteList2 = {
'': ['', '', ''],
}

Это сбой, потому что я пытался ввести данные, которых там не было (пробел перед именем).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...