Ist QT geeinget für mich?

Verschiedenes zu Qt
Antworten
rubikon
Beiträge: 89
Registriert: 27. Mai 2010 13:23

Ist QT geeinget für mich?

Beitrag von rubikon »

Hallo zusammen.

Kurze Vorgeschichte: Ich muss eine Anwendung für ein ARM Prozessor mit Windows CE schreiben.

Als erstes habe ich es klassisch mit C++ und MFC versucht. Allerdings habe ich einige 'spezielle' Anforderungen (zu welchen ich gleich komme) die sich mit MFC nur durch unschöne Workarounds lösen ließen (wenn überhaupt).

Da dies das Projekt sehr schwer Wart- und Erweiterbar macht, habe ich mich entschieden auf eine andere Technologie zu setzten. Dies war dann C#/.NET. Nach einer mehrtägigen (schon fast mehrwöchigen) Einarbeitungsphase, stellte sich heraus, das diese Anforderungen mit dem modernen .NET (man muss ehrlicher weise sagen, dass sich dass auf das compact Framework bezieht) scheinbar auch nicht lösen lässt.

Da ich mich nicht wieder wochenlang in etwas Einarbeiten möchte um dann festzustellen das es nicht, möchte ich das im Vorfeld klären.

Ich weiß, normalerweise gilt: Eine Frage ein Thread, aber ich möchte hier ja nicht wissen wie das geht sondern ob das (mit QT auf einem embedded System) geht.

So, nun die Anforderungen:
- eine ListView mit Gridlines
- die Schrift- und Hintergrundfarbe der Items der ListView sollen unterschiedlich sein können
- die Schriftgröße der Listview soll änderbar sein
- die Scrollbars der Listview sollen nicht sichtbar sein. Dafür soll das Scrollen (Zeilen- und Spaltenweise) über Buttons realisiert werden
- ein ms genauer Timer (oder verwendet man hier auch den mmTimer?)
- eine Client Socket Verbindung zu einer Hostanwendung. Es kann sein das die Hostanwendung erst gestartet wird, wenn meine Anwendung schon läuft. Dh meine Anwendung muss 'pollen' bis die Hostanwendung gestartet wurde. Wenn die Hostanwendung geschlossen wird, soll auch das 'pollen' wieder starten, damit sich meine Anwendung mit der Hostanwendung wieder verbinden kann sobald diese wieder gestartet wird.

So, das sind alle Anforderungen die mir im Moment einfallen. Ich hoffe mir kann jemand sage ob diese mit Qt zu bewerkstelligen sind (was ich sehr hoffe)

Schonmal viele Dank für hilfreiche Antworten im vorraus.
Nvidia
Beiträge: 238
Registriert: 22. Februar 2010 21:23

Beitrag von Nvidia »

1-4 ist ohne Probleme realisierbar.
5 auch, der Timer funktioniert mit ms, aber es ist nicht 100% auf die ms genau, was ich bis jetzt gehoert hab.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Als erstes habe ich es klassisch mit C++ und MFC versucht. Allerdings habe ich einige 'spezielle' Anforderungen (zu welchen ich gleich komme) die sich mit MFC nur durch unschöne Workarounds lösen ließen (wenn überhaupt).
- eine ListView mit Gridlines
- die Schrift- und Hintergrundfarbe der Items der ListView sollen unterschiedlich sein können
- die Schriftgröße der Listview soll änderbar sein
- die Scrollbars der Listview sollen nicht sichtbar sein. Dafür soll das Scrollen (Zeilen- und Spaltenweise) über Buttons realisiert werden
Glaub ich versteh Dein Leiden :-)

Aber: Das schoene an C++ ist, das man seine "unschöne Workarounds" ganz gut verstecken kann. In dem man seinen geistigen Erguss in ne saubere Schnittstelle packt. Modulares Programmieren !
So gibt es z.b. einige Mfc Controls, die "aehliches" bieten was du suchst ... leider kosten die meistens.
Aber man kann auch selber was programmieren und gut wrappen, der code drumherum wird nur schwerer wartbar, wenn die Schnittstelle sh... ist. Die Komponente selber warten iss dann schwer, und wird sicher nur der Ersteller koennen, aber ein "Neuer" kann sie entweder wiederwrappen und damit erweitern, oder gar komplett austauschen.

Das ist aber typisches C++. in Groesseren Projecten ist das Gang und gebe, und man sollt sich dran gewoehnen.
Da dies das Projekt sehr schwer Wart- und Erweiterbar macht,
Ist also kein Konzeptproblem von C++ bzw von Frameworks fuer c++, sondern eher nen eigenes Designproblem.

Wobei Mfc schon recht unschoen ist ^^ find ich auch. Aber sie hat auch Vorteile !
1-4 ist ohne Probleme realisierbar.
Generell kann die Qt das, aber sie verlangt auch ressourcen fuer. Wenn die Performance ausreicht, isses kein problem.
Wenn die Anzeigegroesse, also die anzahl der Zellen die du anzeigst, recht klein bleibt und die recht statisch sind (aber du fragst ja ned umsonst nach dem timer) wird es eher unproblematisch.

Bei grossen Qt Tabellen mit viel dynamik bekomm ich selbst aufn normalen Desktop Rechner oft Performanceprobleme, wenn ich die grids "naiv" implementiere. Aber man kann auf Qt ebene konzeptionell da schon viel korrigieren. Wenn das aber immer noch ned langt, wirst wohl doch recht weit herabsteigen muessen auf Winapi-Ebene, da geht dann um welten noch mal mehr.
ein ms genauer Timer (oder verwendet man hier auch den mmTimer?)
Du verwendest Windows CE ? Lauft das im Echtzeitfaehigen Modus bzw. mit echtzeitfaehigen Erweiterungen ? Dann hasst andere Möglichkeiten als die generellen Timer (und die wird QT nicht kennen) ...
wenn nicht ... dann bekommst du nie ms genaue Timer und solltest eh mit der "Ungenauigkeit" rechnen.
Fuer genaue Zeiten bietet die Qt nicht allzuviel.
Aber, in C++ kann man ja alles kombinieren. DU kannst in dein QT programm ohne probleme c++ komponenten einbauen, die nur unter windows / windows CE laufen. Dein programm wird dann halt nur fuer windows / windows CE kompilierbar sein. !

Ciao ...
marvel
Beiträge: 105
Registriert: 9. August 2009 07:41

Beitrag von marvel »

hallo,
ich arbeite auch gerade an einer größeren windows ce qt applikation. deine anforderungen werden von qt sicherlich abgedeckt. darüberhinaus ist das arbeiten mit qt bzw entwickeln wesentlich einfacher und man muss nicht das rad neu erfinden. viele sachen deckt die api bereits ab. wenn du fragen zum einrichten kompilieren hast stehe ich dir gerne mit rat zur seite. ich arbeite zur zeit mit windows ce 6.5 professional, qt 4.6 , visual studio.
Nvidia
Beiträge: 238
Registriert: 22. Februar 2010 21:23

Beitrag von Nvidia »

RHBaum hat geschrieben: Generell kann die Qt das
seit wann ist Qt weiblich :o
rubikon
Beiträge: 89
Registriert: 27. Mai 2010 13:23

Beitrag von rubikon »

Moin.

Vielen Dank an alle für Eure Antworten. Das hört sich ja schon mal viel versprechend an.

@marvel: Dein Angebot nehme ich sehr gerne an. Habe auch schon die erste Frage: http://qtforum.de/forum/viewtopic.php?p=61825#61825
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

seit wann ist Qt weiblich Surprised
Naja, "Sie" frisst meine Ressourcen.
und oft weiss ich ned genau was "Sie" macht !

Wenn das keine Indizien sind ! :twisted:

"Qt" schreib ich immer fuer "QT-Bibliothek"
ist natuerlich nicht 100% eindeutig koennt ja auch fuer "Qt-Framework" stehen.

Ciao ...
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

RHBaum hat geschrieben:
seit wann ist Qt weiblich Surprised
Naja, "Sie" frisst meine Ressourcen.
und oft weiss ich ned genau was "Sie" macht !

Wenn das keine Indizien sind ! :twisted:

"Qt" schreib ich immer fuer "QT-Bibliothek"
ist natuerlich nicht 100% eindeutig koennt ja auch fuer "Qt-Framework" stehen.

Ciao ...
OT: es koennte auch fuer "Q toolkit" stehen (so stehts in nem alten Qt-buch von trolltech) ;)

mfg
julian
Antworten