Вот на создании делегата я и застрял: не могу понять как сделать передачу значения в делегат и из него. Код такой
class DirectoryDelegate( QItemDelegate ): selectClicked = pyqtSignal() def __init__( self, parent = None ): QItemDelegate.__init__( self, parent ) def createEditor( self, parent, options, index ): self.btnSelect = QPushButton( self.tr( "..." ) ) self.lineEdit = QLineEdit() hbl = QHBoxLayout() hbl.addWidget( self.lineEdit ) hbl.addWidget( self.btnSelect ) self.btnSelect.clicked.connect( self.selectDirectory ) myWidget = QWidget( parent ) myWidget.setBackgroundRole( QPalette.Window ) myWidget.setAutoFillBackground( True ) myWidget.setLayout( hbl ) return myWidget def setEditorData( self, editor, index ): value = index.model().data( index, Qt.EditRole ).toString() editor.setText( value ) def setModelData( self, editor, model, index ): model.setData( index, editor.text(), Qt.EditRole ) def selectDirectory( self ): dirName = QFileDialog.getExistingDirectory( None, self.tr( "Select directory" ), "", QFileDialog.ShowDirsOnly ) if dirName.isEmpty(): return self.lineEdit.setText( dirName )
editor.setText( value )
editor.findChild( QLineEdit, "lineEdit" )
P.S. Может я вообще не правильно делегат создаю?