0
from PyQt4.Qt import Qt, QObject,QLineEdit
from PyQt4 import QtGui, QtCore

import utils

class DirLineEdit(QLineEdit, QtCore.QObject):
    """docstring for DirLineEdit"""

    def __init__(self):
        super(DirLineEdit, self).__init__()
        self.xmlDataObj = utils.ReadWriteCustomPathsToDisk()
        self.defaultList = self.xmlDataObj.xmlData().values()
        self._pathsList()

    def focusInEvent(self, event):
        self.completer().complete()

    def _pathsList(self):        
        completerList = QtCore.QStringList()
        for i in self.defaultList:
            completerList.append(QtCore.QString(i))
        lineEditCompleter = QtGui.QCompleter(completerList)
        self.setCompleter(lineEditCompleter)

    def __dirCompleter(self):
        dirModel = QtGui.QFileSystemModel() 
        dirModel.setRootPath(QtCore.QDir.currentPath()) 
        dirModel.setFilter(QtCore.QDir.AllDirs | QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files) 
        dirModel.setNameFilterDisables(0) 
        completer = QtGui.QCompleter(dirModel, self)    
        completer.setModel(dirModel)
        completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) 
        self.setCompleter(completer)

app = QtGui.QApplication(sys.argv)
smObj = DirLineEdit()
smObj.show()
app.exec_()

上記のコードは、イベントでフォーカスがポップアップするオートコンプリートで選択したテキストを設定できないことを除いて機能します..コンプリータによって選択されたテキストを設定できない理由は何ですか?

4

1 に答える 1