pyQt und Qtable anzeige der aktuellen Tabellenzeile

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
franzf
User
Beiträge: 78
Registriert: Samstag 29. August 2009, 10:21

Code: Alles auswählen

from PyQt4.Qt import *
import sys

class DBWidget (QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.view = QTableView(self)

        self.idSpin = QSpinBox(self)
        self.idSpin.setRange(0, 100000)
        self.firstNameEdit = QLineEdit(self)
        self.secondNameEdit = QLineEdit(self)
        self.submitButton = QPushButton("submit", self)

        layout = QHBoxLayout(self)
        layout.addWidget(self.view)
        editLayout = QVBoxLayout()
        layout.addLayout(editLayout)
        editLayout.addWidget(self.idSpin)
        editLayout.addWidget(self.firstNameEdit)
        editLayout.addWidget(self.secondNameEdit)
        editLayout.addSpacing(10)
        editLayout.addWidget(self.submitButton)
        editLayout.addStretch()

        db = QSqlDatabase.addDatabase("QSQLITE")
        db.setDatabaseName("/home/franz/test/test1.db")
        self.model = QSqlTableModel()
        self.model.setTable("person")
        self.model.select()

        self.view.setModel(self.model)

        self.mapper = QDataWidgetMapper(self)
        self.mapper.setModel(self.model)
        self.mapper.addMapping(self.idSpin, 0)
        self.mapper.addMapping(self.firstNameEdit, 1)
        self.mapper.addMapping(self.secondNameEdit, 2)
        self.mapper.toFirst()

        self.connect(self.view, SIGNAL('clicked(const QModelIndex&)'), self.mapper.setCurrentModelIndex)
        self.connect(self.submitButton, SIGNAL('clicked()'), self.model.submitAll)


app = QApplication(sys.argv)
w = DBWidget()
w.show()
app.exec_()
Das Prinzip sollte ja jetzt klar sein.
MDGo88
User
Beiträge: 18
Registriert: Sonntag 20. September 2009, 13:39

Hallo Franz,

genauso hatte ich mir das vorgestellt, Danke.

Habe ich Recht mit der Annahme, das du für die GUIs den Designer
überhaupt nicht nutzt?

Wenn ja, was machst Du denn bei komplizierteren GUIs und deren
Änderbarkeit. Ist das nicht sehr aufwendig?

Gruß
MDGo88
franzf
User
Beiträge: 78
Registriert: Samstag 29. August 2009, 10:21

MDGo88 hat geschrieben:Habe ich Recht mit der Annahme, das du für die GUIs den Designer
überhaupt nicht nutzt?

Wenn ja, was machst Du denn bei komplizierteren GUIs und deren
Änderbarkeit. Ist das nicht sehr aufwendig?
Da hast du nicht Recht. Nur bringt ein Beispiel recht wenig, wenn man auch noch externe Dateien mitliefern muss. Es ist gleich ausführbar und besser lesbar.

Ansonsten setze ich stark auf den Designer, da er Änderungen leichter möglich macht, auch bei kleinen Formularen :)
Antworten