منبع اصلی نوشتار زیر در این لینک قرار دارد

آموزش پای کیوت (tab completion)

اینجا برنامه ای رو گذاشتم که با نوشتن حروف نخست بعضی از کلمه ها  که در لیست برنامه حضور دارن و با فشردن کلید 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_())

 



برچسب ها : , , , ,