On 29.10.05 18:08:07, Stefan Behnel wrote:
Andreas Pakulat schrieb:
On 29.10.05 14:49:08, Hans-Peter Jansen wrote:
Am Samstag, 29. Oktober 2005 13:13 schrieb Stefan Behnel:
Qt ist binärkompatibel über alle Versionen von Qt1 bis Qt3. Punkt.
Sicher? Ich denke nicht, innerhalb der Major Release Qt1, Qt2 und Qt3 liefert Trolltech Binaerkompatibilitaet ja, aber ich denke nicht ueber Major Releases hinweg. Das wuerde bedeutet, dass die Klassen in Qt1 diesselben Methoden und Attribute haben wie in Qt3 und das glaub ich wirklich nicht...
Ein für Qt 1.0 geschriebenes Programm läuft im Allgemeinen auch mit Qt3.
Mit ziemlicher Sicherheit tut es das nicht. Ich hab nur leider weder ein kompiliertes Qt2 noch Qt1 Programm um es zu testen... Du verwechselst hier Binaer mit Source-Kompatibilitaet. Ob Qt1-3 abwaerts-source-kompatibel sind, weiss ich nicht, aber abwaerts-binaer-kompatibel sind sie bestimmt nicht. Denn dann duerften sich die Variablenlisten genauso wie die Menge und Signaturen der virtuellen Funktionen nicht geaendert haben.
Das ist einfach der Vorteil von OO beim Design von GUI-Toolkits.
OO hat aber mit der Source oder Binaerkompatibilitaet wenig zu tun, ausser vllt. das C++-Bibliotheken wesentlich schwieriger Binaer-kompatibel zu halten sind als C-Bibliotheken.
Dass viele Dinge inzwischen ausgewechselt sind und manches veraltet oder aufs Abstellgleis geschoben, führt dann eben dazu, dass ein ordentlich für Qt3 geschriebenes Programm wohl nicht mehr mit Qt1 funktioniert.
Richtig, source-aufwaertskompatibilitaet wuerde bedeuten es wird kein Fortschritt im Design gemacht - das faellt eher unter Bugfix-Releases.
Qt4 war von Anfang an als Bruch der Kompatibilität geplant. Qt3 wird weiter supportet und Qt4 enthält vieles, was den Umstieg bei Bedarf erleichtert.
Aehm, schonmal auf der qt-interest-Liste mitgelesen? Offensichtlich ist die Portierung eines Qt3-Programms auf Qt4 nicht nur "nicht einfach", sondern sogar so kompliziert, dass ein Rewrite einfacher ist.
Vielleicht, und das stützt ja meine Aussage.
Wie gesagt, ich weiss nicht wie das beim Uebergang von Qt1 -> Qt2 -> Qt3 war (damals kannte ich dass noch nicht), aber beim Uebergang von Qt3 zu Qt4 ist nicht nur Binaerinkompatibilitaet gegeben sondern zusaetzlich auch noch Source und Design-Inkompatibilitaet hinzugekommen. Einige Dinge sind jetzt mit einem ganz anderen Programmier-Pattern geloest (z.B. die Model-View-Widgets).
Es ist ja niemand gezwungen, zu Qt4 zu wechseln.
Ich vermute auf lange Sicht schon, aber ein paar Monate/Jahre wird Qt3 wohl noch ueberleben...
Nur, wer mit Qt3-Software unbedingt die Möglichkeiten von Qt4 nutzen möchte, der darf sich das dann auch was kosten lassen.
?? Qt3 ist Qt3, wenn du deine Software komplett auf Qt4 umstellst, ist das quasi ein Rewrite - wie gesagt.
Trolltech hat nie einen Hehl daraus gemacht, dass der Umstieg nicht ohne Handarbeit gehen würde.
Das Problem ist aber: TT hatte extra fuer die "einfache" Migration die Q3-Support-Klassen mitgeliefert, sowie Tools um die Qt3-Programme zu konvertieren. Leider ist das Zeug so buggy dass man das ausfuehren der meisten Qt3-Programme mittels der Qt3-Support-Klassen vergessen kann und wirklich portieren muss auf Qt4. Da hat TT entweder zuviel PR-Arbeit der Form "Wir haben Qt3-Support-Klassen, damit Qt3-Apps einfach auf Qt4 weiterlaufen koennen" (entspricht Source-Kompatibilitaet) oder zuwenig QA bei den Klassen gemacht.
Durch richtige OO ist die Struktur nachvollziehbar, und vorhersagbar (predictable).
Naja, es gibt in Qt3 auch so ein paar "Ungereimtheiten", insbesondere im Zusammenhang mit der QStringList, die eben keine QValueList<QString> ist...
Was mir als Python Programmierer natürlich herzlich egal ist.
Hmm, wirklich? Was machst du wenn eine PyQt-Funktion dir eine QStringList zurueckliefert? Konvertierst du das erst in eine python-liste mit QStrings bzw. str? Ich gebe zu dass ich PyQt nicht ausreichend ausprobiert hab um auch mal zu schauen wie das mit den Containerklassen von Qt funktioniert... Andreas -- Living your life is a task so difficult, it has never been attempted before. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de