1
Ich versuche, ein QtGui.QPlainTextEdit mit einem Modell mit QDataWidgetMapper zu verbinden. Ich bekomme keine Fehler, nur nichts im TextEdit. Ich bekomme es nicht und ich finde kein gutes Beispiel Code.PySide PyQt QDataWidgetMapper
Hier ist ein BeispielCode. Ich hoffe wirklich, dass mir jemand helfen könnte.
from PySide import QtCore, QtGui
import sys
class ComponentsListModel(QtCore.QAbstractListModel):
def __init__(self, components=[], parent = None):
super(ComponentsListModel, self).__init__(parent=None)
self.components = components
self.list = parent
def rowCount(self, parent):
return len(self.components)
def data(self, index, role):
row = index.row()
if role == QtCore.Qt.DisplayRole:#index.isValid() and
value = self.components[row]
return value
class MainWindow(QtGui.QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self._build_ui()
def _build_ui(self):
self.layout = QtGui.QVBoxLayout()
self.listView = QtGui.QListView()
self.model = ComponentsListModel(components = ['1', '2', '3'])
self.listView.setModel(self.model)
self.text = QtGui.QPlainTextEdit()
self.layout.addWidget(self.listView)
self.layout.addWidget(self.text)
self.setLayout(self.layout)
self._mapper = QtGui.QDataWidgetMapper(self)
self._mapper.setModel(self.model)
self._mapper.setSubmitPolicy(QtGui.QDataWidgetMapper.AutoSubmit)
self._mapper.addMapping(self.text, 0)
self._mapper.toFirst()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
app.setStyle('Plastique')
mySW = MainWindow()
mySW.show()
sys.exit(app.exec_())
in Ihrer 'data' Funktion in' ComponentsListModel' Klasse hinzuzufügen, versuchen 'wenn Rolle hinzufügen == Qt .EditRole: return self.components [Zeile] ' – SyedElec
Funktioniert wie Charme, danke –
Ich bin froh, dass es geholfen hat, habe ich eine Antwort. – SyedElec