在这种情况下,您不需要QCompleter。请尝试以下示例:
from PyQt5 import QtCore, QtGui, QtWidgetsclass Window(QtWidgets.QMainWindow):
def __init__(self, cList):
super().__init__()
self.cList = cList
self.lineEdit_1 = QtWidgets.QLineEdit()
self.lineEdit_2 = QtWidgets.QLineEdit()
layoutH = QtWidgets.QHBoxLayout()
layoutH.addWidget(self.lineEdit_1)
layoutH.addWidget(self.lineEdit_2)#completer = QtWidgets.QCompleter(self)#model = QtCore.QStringListModel()#completer.setModel(model)
self.comboBox_4 = QtWidgets.QComboBox()#self.comboBox_4.setCompleter(completer)
self.comboBox_4.addItems(sorted(cList.keys()))
self.comboBox_4.activated[str].connect(self.onActivatedText)
layoutV = QtWidgets.QVBoxLayout()
layoutV.addLayout(layoutH)
layoutV.addWidget(self.comboBox_4)
centralWidget = QtWidgets.QWidget()
centralWidget.setLayout(layoutV)
self.setCentralWidget(centralWidget)
@QtCore.pyqtSlot(str)
def onActivatedText(self, text):
self.lineEdit_1.setText(self.cList[text][0])
self.lineEdit_2.setText(self.cList[text][1])autocompleteList2 = {
'James-1': ['James111@Gmail.com', '410-111-1111'],
'James-2': ['James222@Gmail.com', '410-222-2222'],
'James-3': ['James333@Gmail.com', '410-333-3333'],}if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = Window(autocompleteList2)
w.show()
sys.exit(app.exec_())
在Qt调试过程中,如果需要手动给一个list赋值,可以按照以下步骤进行 *** 作:1. 在代码中定义一个list,例如:QList<int>myList
2. 在需要赋值的地方,使用append()函数向list中添加元素,例如:myList.append(1)myList.append(2)myList.append(3)
3. 如果需要在list的指定位置插入元素,可以使用insert()函数,例如:myList.insert(1, 4)// 在第二个位置插入元素4
4. 如果需要修改list中某个元素的值,可以使用下标 *** 作符[],例如:myList[0] = 0// 将第一个元素的值修改为0
5. 如果需要删除list中某个元素,可以使用removeAt()函数,例如:myList.removeAt(1)// 删除第二个元素
6. 如果需要清空list中所有元素,可以使用clear()函数,例如:myList.clear()
需要注意的是,如果在调试过程中手动赋值,可能会影响程序的运行结果,因此建议在调试完成后将手动赋值的代码删除或注释掉。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)