[Python-de] Grafische Oberfläche
Diez B. Roggisch
deets at web.de
Sam Okt 29 18:49:53 CEST 2005
> Wobei es die Frage ist, was davon an Qt liegt und was am C++-Compiler. Nicht
> nur der GCC (insbesondere der g++/libstdc++) hat sich ja mit den Jahren um
> Größenordnungen gewandelt, die Binaries egal welcher Art inkompatibel machen.
> Wenn du den selben C++-Compiler nebst Stdlib und anderen Abhängigkeiten
> nimmst, mit dem du damals die Qt1 übersetzt hast, dann sollte das mit der
> Kompatibilität auch bei C++ hinhauen. Allerdings ist es dann meist doch
Nein. Das habe ich in de.c.l.py schon mal diskutiert, deswegen nur kurz:
C++ ändert das Speicherlayout wenn man zB neue private Variablen
einführt und dabei nicht höllsich aufpasst. Und das bei gleichem
compiler. Damit bricht man binärkompatiblität - trolltech selber hat
dazu mal einen Aufsatz verfasst, der erläutert wie man da vorgehen muss
um das zu verhindern. Und das ist nicht zwischen Major revisions
machbar. Sie habe wenn das API soweit mit Compatiblitätslayern versehen,
das man eine alte Qt2-App noch unter 3 zum laufen bekommt - durch einen
Compilationbslauf, und mit (verhältnismässig) wenig Änderungen.
Was alles übrigens ein guter grund sein kann, C-style interface zu
verwenden für eine Bibliothek, auch wenn sie intern mit C++ geschrieben
wurde.
> Aber ist auch egal, ich werde den Nachweis ohnehin nicht antreten. Eigentlich
> hat die Diskussion auch nichts auf der Python-Mailingliste zu suchen, da wäre
> dann die Kompatibilität von PyQt wichtiger. Und die ist dann wieder eine ganz
> andere Geschichte...
Das ist insofern von belang, als das pyQt ja für eine bestimmte Version
kompliliert wurde. Wenn was du sagst stimmen würde, dann könnte man PyQT
3.x ja für Qt-1 benutzen usw. Und das geht eben nicht. Aber wenn man
zusammen geschnürte Pakete nimmt, dann hat man damit natürlich nix zu
tun. Und zumindest für den Desktop ist ja auch eigentlich nur noch Qt3
von Belang.
MfG Diez