Qt-Neuling - brauche ein paar Tips
Verfasst: 16. August 2010 09:41
Guten Morgen zusammen,
ich arbeite mich derzeit in Qt ein da ich für mein aktuelles Projekt ein plattformunabhängiges GUI-Toolkit benötige. Ich entwickle mit Visual Studio 2008 und möchte das Qt-Plugin benutzen. Erste erfolgreiche Gehversuche habe ich bereits gemacht, auch mit dem Designer komme ich soweit zurecht (später mehr dazu).
Ich umreiße das Projekt kurz:
Es geht um die Kommunikation mit Microcontrollern über eine serielle Schnittstelle. Die Kommunikation erfolgt grundsätzlich über ein einfaches Frage-Antwort-Verfahren, ich schicke ein Datum raus und bekomme daraufhin eine Antwort. Gelegentlich kommt es vor dass ich ein asynchrones Datum erhalte, ich also Daten empfange obwohl ich selbsy nichts verschickt habe.
Es gibt Daten die sich fortlaufend ändern als auch Daten, welche unveränderlich sind.
Ich will das Projekt so sauber wie möglich aufziehen, auch im Sinne der Wart- und Erweiterbarkeit, daher folgende Fragen:
1.) Grundsätzliches zur Entwicklung mit Visual Studio und dem Qt Designer
1.1) Welchen tieferen Sinn hat es, die GUI-Klasse, die aus dem ui-File erzeugt wird, innerhalb einer weiteren Klasse zu instanziieren? Warum sollte es besser sein die GUI nicht innerhalb der main() zu instanziieren? Macht diese Vorgehensweise das nachträgliche Definieren von Signalen / Slots nicht erheblich aufwändiger da man die Klasse erst ableiten muss?
1.2) Welcher Arbeitsablauf ist mit GUI-Klassen, die mit dem Designer erstellt wurden, ist zu empfehlen?
Ich habe bei meinen bisherigen Experimenten nur die GUI im Designer erstellt, die Signale aber nicht im Designer mit Slots verbunden sondern im Konstruktor meiner GUI-Klasse.
2.) Arbeiten mit Models und Views
2.1) Ich werde in meinem Projekt die empfangenen Daten zunächst auswerten und tabellarisch darstellen. Dafür eignet sich meiner Meinung nach das QAbstractTableModel() am besten. Aber wie organisiere ich die Daten am geschicktesten?
Ich habe mir das Address Book-Beispiel in der Dokumentation angesehen, dort wird zwar ein QAbstractTableModel verwendet, allerdings werden dort QPair's in das Model reingeworfen, es gibt also 2 Spalten. Was aber wenn ich einmal 3 oder 4 Spalten brauche, ist ein Konstrukt wie QList< QStringList > ein vernünftiger Ansatz?
... hmm, das sind erst mal genug Fragen, wahrscheinlich kommt da noch mehr, aber das sind so die 3 gröbsten Baustellen, nach Priorität sortiert
Ich danke euch schon einmal für eure Mühe!!
ich arbeite mich derzeit in Qt ein da ich für mein aktuelles Projekt ein plattformunabhängiges GUI-Toolkit benötige. Ich entwickle mit Visual Studio 2008 und möchte das Qt-Plugin benutzen. Erste erfolgreiche Gehversuche habe ich bereits gemacht, auch mit dem Designer komme ich soweit zurecht (später mehr dazu).
Ich umreiße das Projekt kurz:
Es geht um die Kommunikation mit Microcontrollern über eine serielle Schnittstelle. Die Kommunikation erfolgt grundsätzlich über ein einfaches Frage-Antwort-Verfahren, ich schicke ein Datum raus und bekomme daraufhin eine Antwort. Gelegentlich kommt es vor dass ich ein asynchrones Datum erhalte, ich also Daten empfange obwohl ich selbsy nichts verschickt habe.
Es gibt Daten die sich fortlaufend ändern als auch Daten, welche unveränderlich sind.
Ich will das Projekt so sauber wie möglich aufziehen, auch im Sinne der Wart- und Erweiterbarkeit, daher folgende Fragen:
1.) Grundsätzliches zur Entwicklung mit Visual Studio und dem Qt Designer
1.1) Welchen tieferen Sinn hat es, die GUI-Klasse, die aus dem ui-File erzeugt wird, innerhalb einer weiteren Klasse zu instanziieren? Warum sollte es besser sein die GUI nicht innerhalb der main() zu instanziieren? Macht diese Vorgehensweise das nachträgliche Definieren von Signalen / Slots nicht erheblich aufwändiger da man die Klasse erst ableiten muss?
1.2) Welcher Arbeitsablauf ist mit GUI-Klassen, die mit dem Designer erstellt wurden, ist zu empfehlen?
Ich habe bei meinen bisherigen Experimenten nur die GUI im Designer erstellt, die Signale aber nicht im Designer mit Slots verbunden sondern im Konstruktor meiner GUI-Klasse.
2.) Arbeiten mit Models und Views
2.1) Ich werde in meinem Projekt die empfangenen Daten zunächst auswerten und tabellarisch darstellen. Dafür eignet sich meiner Meinung nach das QAbstractTableModel() am besten. Aber wie organisiere ich die Daten am geschicktesten?
Ich habe mir das Address Book-Beispiel in der Dokumentation angesehen, dort wird zwar ein QAbstractTableModel verwendet, allerdings werden dort QPair's in das Model reingeworfen, es gibt also 2 Spalten. Was aber wenn ich einmal 3 oder 4 Spalten brauche, ist ein Konstrukt wie QList< QStringList > ein vernünftiger Ansatz?
... hmm, das sind erst mal genug Fragen, wahrscheinlich kommt da noch mehr, aber das sind so die 3 gröbsten Baustellen, nach Priorität sortiert
Ich danke euch schon einmal für eure Mühe!!