Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt4.Qt import Qt, QObject,QLineEdit
- from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT
- from PyQt4 import QtGui, QtCore
- import sys
- class DirLineEdit(QLineEdit):
- """docstring for DirLineEdit"""
- def __init__(self):
- super(DirLineEdit, self).__init__()
- self.defaultList = ['~/Development/python/searchMethod', '~/Development/Nuke_python',
- '~/Development/python/openexr', '~/Development/python/cpp2python']
- self.textEdited.connect(self._dirCompleter)
- def focusInEvent(self, event):
- if len(self.text()) == 0:
- self._pathsList()
- QtGui.QLineEdit.focusInEvent(self, event)
- self.completer().complete()
- self.setModified(False)
- def _dirCompleter(self):
- if len(self.text()) == 0:
- self._pathsList()
- else:
- model = QtGui.QFileSystemModel()
- model.setRootPath(QtCore.QDir.currentPath())
- model.setFilter(QtCore.QDir.AllDirs | QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files)
- model.setNameFilterDisables(0)
- completer = QtGui.QCompleter(model, self)
- completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
- completer.setModel(model)
- self.setCompleter(completer)
- def _pathsList(self):
- completerList = QtCore.QStringList()
- for i in self.defaultList:
- completerList.append(QtCore.QString(i))
- lineEditCompleter = QtGui.QCompleter(completerList)
- lineEditCompleter.setCompletionMode(QtGui.QCompleter.UnfilteredPopupCompletion)
- self.setCompleter(lineEditCompleter)
- class MyListModel(QtCore.QAbstractListModel):
- def __init__(self, datain, parent=None, *args):
- """ datain: a list where each item is a row
- """
- QtCore.QAbstractListModel.__init__(self, parent, *args)
- self.listdata = datain
- def rowCount(self, parent=QtCore.QModelIndex()):
- return len(self.listdata)
- def data(self, index, role):
- if index.isValid() and role == QtCore.Qt.DisplayRole:
- return QtCore.QVariant(self.listdata[index.row()])
- else:
- return QtCore.QVariant()
- app = QtGui.QApplication(sys.argv)
- smObj = DirLineEdit()
- smObj.show()
- app.exec_()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement