Servus leute,
ich versuche gerade mithilfe des gui-frameworks qt einen vokabeltrainer zu schreiben. ich habe jetzt folgende probleme:
(1) wenn man das programm startet soll zuerst eine eingabemaske für verschiedene optionen erscheinen (zb. lektion etc.), nachdem diese ausgefüllt und bestätigt wurde, soll das eigentliche programm im selben widget (QFrame) beginnen.
die eingabemaske für die optionen hat aber total andere widgets und ein anderes layout als das eigentliche programm; wie macht man jetzt den übergang von der eingabemaske zum eigentliche programm? gibt es in qt nicht etwas panel-ähnliches das man als parents für die widgets verwendet und nach der eingabe der optionen einfach ausblenden kann?
(2) die vokabeln stehen in einer .csv datei und werden innerhalb des programms in einer qsqldatabase verwaltet. wie kann man die datenbank am besten auf der festplatte sichern, damit die datenbank direkt geladen werden kann?
vielen dank für eure antworten schonmal im voraus!
[PyQt] Vokabeltrainer schreiben
Dafür gibt es z.B. "QtGui.QStackedLayout". Allerdings ist das nicht unbedingt im Sinne der Usability, besser wäre imho die Anzeige eines Dialogs.vorlautboy hat geschrieben:(1) wenn man das programm startet soll zuerst eine eingabemaske für verschiedene optionen erscheinen (zb. lektion etc.), nachdem diese ausgefüllt und bestätigt wurde, soll das eigentliche programm im selben widget (QFrame) beginnen.
die eingabemaske für die optionen hat aber total andere widgets und ein anderes layout als das eigentliche programm; wie macht man jetzt den übergang von der eingabemaske zum eigentliche programm? gibt es in qt nicht etwas panel-ähnliches das man als parents für die widgets verwendet und nach der eingabe der optionen einfach ausblenden kann?
Der Sinn erschließt sich mir nicht? Willst du nun CSV-Dateien laden, oder eine echte SQL-Datenbank?(2) die vokabeln stehen in einer .csv datei und werden innerhalb des programms in einer qsqldatabase verwaltet. wie kann man die datenbank am besten auf der festplatte sichern, damit die datenbank direkt geladen werden kann?
-
- User
- Beiträge: 38
- Registriert: Sonntag 7. Dezember 2008, 18:43
momentan ist die datenbank noch in der csv datei, beim nächsten mal laden soll sie aber als sql datenbank gespeichert und danach dauerhaft auch so geladen werden; ich kann nur keine funktion finden, die die datenbank so auf die platte schreibt, dass sie sich später auch wieder problemlos mit qtsql laden lässt.Der Sinn erschließt sich mir nicht? Willst du nun CSV-Dateien laden, oder eine echte SQL-Datenbank?(2) die vokabeln stehen in einer .csv datei und werden innerhalb des programms in einer qsqldatabase verwaltet. wie kann man die datenbank am besten auf der festplatte sichern, damit die datenbank direkt geladen werden kann?
-
- User
- Beiträge: 38
- Registriert: Sonntag 7. Dezember 2008, 18:43
ja aber welche methode wird zum schreiben auf die platte verwendet oder muss man das selbst machen?lunar hat geschrieben:http://doc.trolltech.com/4.4/qtsql.html <- Dafür gibt es das QtSql Modul
Es ist nicht die Aufgabe des Programms, die Daten persistent zu speichern. Genau dafür ist die Datenbank ja da. Das DBMS garantiert, dass abgeschlossene Transaktionen persistent sind.
Wenn du – wie ich vermute – nur eine einzige Datei nutzen möchtest, dann kannst du als Datenbanktreiber SQLite nutzen. Dadurch wird eine einzige Datei gespeichert. Bei vollwertigen DBMS wie MySQL oder Postgre dagegen ist der Datenbankserver für die Speicherung zuständig.
Ich denke, du solltest dir erstmal Grundlagen über Datenbanken aneignen, da dir diese offenbar fehlen.
Falls du ein Beispiel benötigst: Aufbau der Datenbankverbindung und das dazugehörige Model.
Wenn du – wie ich vermute – nur eine einzige Datei nutzen möchtest, dann kannst du als Datenbanktreiber SQLite nutzen. Dadurch wird eine einzige Datei gespeichert. Bei vollwertigen DBMS wie MySQL oder Postgre dagegen ist der Datenbankserver für die Speicherung zuständig.
Ich denke, du solltest dir erstmal Grundlagen über Datenbanken aneignen, da dir diese offenbar fehlen.
Falls du ein Beispiel benötigst: Aufbau der Datenbankverbindung und das dazugehörige Model.