Frage

Ich bin versucht derzeit ein Vermächtnis VBA / Microsoft Access-Anwendung Python und PyQt zu migrieren. Ich habe keine Probleme hat jede der Logik der Migration, und die meisten der Formen haben ein Kinderspiel, aber auch gewesen. Allerdings habe ich ein Problem auf dem wichtigsten Teil der Anwendung getroffen -. Hauptdateneingabeformular

Die Form ist im Grunde eine Reihe von Textfeldern auf Felder in der Datenbank entsprechen. Der Benutzer gibt einfach Daten in einen Bereich, Tabulatoren zum nächsten und wiederholt sich. Als er zum Ende der Aufzeichnung / Reihe kommt, Tabs er wieder, und die Form wird automatisch eine neue für ihn leere Zeile starten Daten erneut eingeben. (In Wirklichkeit zeigt es eine „leere“ Zeile unterhalb der aktuellen neuen Datensatz, die der Benutzer tatsächlich klicken in kann auch eine neue Aufzeichnungen zu starten.) Es ist auch ermöglicht es dem Benutzer, um nach oben und nach unten alle aktuellen Teilmenge zu sehen, er arbeitet von Datensätzen auf.

Gibt es eine Möglichkeit, diese Funktionalität in PyQt zu replizieren? Ich habe das nicht leicht geschaffen, einen Weg zu finden, Qt zu bekommen zu tun. Zugang übernimmt es automatisch; kein Code außerhalb der Form erforderlich ist. Ist es so einfach, in PyQt (oder sogar in der Nähe), oder ist dies etwas, das von Grund auf neu programmiert müssen los werden?

War es hilfreich?

Lösung

Sie sollten in QSqlTableModel aussehen, und die QTableView Objekte. QSqlTableModel bietet eine Abstraktion einer relationalen Tabelle, die auf den Klassen Qt Ansicht innen verwendet werden kann. Ein QTableView zum Beispiel. Die Funktionalität, die Sie beschreiben, kann mit diesen beiden Klassen nur mit mäßigem Aufwand umgesetzt werden.

Die QSqlTableModel unterstützt auch die Bearbeitung auf Datenbankfelder.

Meine Vermutung die einzige Funktionalität, die Sie manuell haben zu implementieren, ist der „TAB“ am Ende der Tabelle eine neue Zeile zu erstellen, wenn Sie das behalten wollen.

Ich weiß nicht viel über Zugang, aber die ODBC-SQL-Treiber verwenden, sollten Sie die Verwendung der Lage, die tatsächliche Access-Datenbank für Ihre Entwicklung oder Testen gibt es einige ältere Informationen hier , könnten Sie bewegen zu SQLite, Mysql zu prüfen, oder eine andere tatsächliche SQL-Datenbank.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top