اینجا برنامه ای رو گذاشتم که با نوشتن حروف نخست بعضی از کلمه ها که در لیست برنامه حضور دارن و با فشردن کلید tab اونارو تشخیص می ده و کامل شده ی اون کلمه رو درون line edit بر می گردونه. از این برنامه در دیکشنری ها و یا هر برنامه ای که نیاز به ویرایشگر داشته باشه می شه استفاده کرد
طرز کار این برنامه این جوریه که توسط تابع رویداد کلید ها keyPressEvent کلید های فشرده شده رو برسی می کنه اگر کلید فشرده شده تب بود کلمه ای از لیست رو با حروف درون line edit اغاز می شوند رو بر می گردونه. لیست کلمات درون لیست:
yahoo google hello welcome me net friend apple orange word dotpy.ir
#!python import sys from PyQt4.QtCore import Qt from PyQt4.QtGui import QApplication, QLineEdit class LineEdit(QLineEdit): completion_items = [ u"hello", u"world", u'dotPy.ir', u'iraj',u'apple','orange','net','me','thanks','welcome','friend', 'google','yahoo' ] def __init__(self, parent = None): QLineEdit.__init__(self, parent) def keyPressEvent(self, event): if event.key() == Qt.Key_Tab: for item in self.completion_items: if item.startswith(self.text()): self.setText(item) break event.accept() else: QLineEdit.keyPressEvent(self, event) if __name__ == "__main__": app = QApplication(sys.argv) window = LineEdit() window.show() sys.exit(app.exec_())