Seite 1 von 1
wx.Point() statt Tupel
Verfasst: Donnerstag 11. September 2025, 20:01
von moe
Hallo Forum,
ich bin gerade dabei mich in wxPython einzuarbeiten. Bei diesem GUI-Toolkit kann man die Widgets mit dem Parameter "pos" absolut positionieren. Dies habe ich dann mit einem Tupel (10, 10) zum Beispiel gemacht. PyCharm gibt aber einen Hinweis, dass man für die Koordinaten die Klasse wx.Point() nutzen sollte. Also zum Beispiel
Jetzt ist meine Frage was dabei der Unterschied ist und warum man wx.Point() nutzen sollte?
Gruß
moe
Re: wx.Point() statt Tupel
Verfasst: Donnerstag 11. September 2025, 20:13
von __blackjack__
@moe: Den Unterschied kannst Du Dir doch in der jeweiligen Dokumentation anschauen. Also was die Objekte jeweils an Methoden haben. Die C++-Bibliothek kennt keine Python-Tupel, die benutzt an der Stelle `wxPoint`-Objekte. Die Python-Anbindung ist so nett aus Tupeln solche Objekte zu erstellen.
Ob man `wx.Point` nutzen sollte ist eine Frage die wahrscheinlich die Dokumentation der Python-Anbindung beantworten kann. Wenn die diese automatische Umwandlung als veraltet markiert haben und die abschaffen wollen, dann sollte man das nicht mehr nutzen. Falls nicht, ist die Frage ob man mit dem meckern von PyCharm leben kann, oder mit dem expliziten verwenden von `wx.Point`. Oder ob man die Prüfung von Typannotationen in PyCharm abstellt.
Re: wx.Point() statt Tupel
Verfasst: Donnerstag 11. September 2025, 20:27
von moe
Hallo blackjack,
also in der Doku von wxPython habe ich nichts gefunden, dass diese automatische Umwandlung als veraltet markiert wurde. Danke aber für den Hinweis, dass an dieser Stelle Tupel zu diesen wx.Point()-Objekten konvertiert werden.
Re: wx.Point() statt Tupel
Verfasst: Donnerstag 11. September 2025, 20:28
von __blackjack__
Ich habe mal geschaut wo man Typannotationen für wxPython her bekommt: Das ist ein eigenes, von wxPython unabhängiges Projekt, das die HTML-Dokumentation von wxPython auswertet. Das setzt als Typ für `wx.Point`-Argumente aber `Union[tuple[int, int], 'Point'`:
https://github.com/AlexionSoftware/type ... er.py#L620
PyCharm benutzt also wohl eine andere Quelle für die Typannotationen‽
Re: wx.Point() statt Tupel
Verfasst: Freitag 12. September 2025, 05:48
von sparrow
@moe: Ergänzend: In allen mir bekannten Toolkits sollte man Widgets nicht fest positionieren sondern Layoutmanager verwenden.
Re: wx.Point() statt Tupel
Verfasst: Freitag 12. September 2025, 09:14
von Dennis89
Hallo,
ich habe die Erfahrung auch schon gemacht, dass man sich nicht auf alle Anmerkungen von PyCharm verlassen kann. Allerdings kam das bei mir wirklich eher selten vor.
Grüße
Dennis
Re: wx.Point() statt Tupel
Verfasst: Freitag 12. September 2025, 12:25
von moe
sparrow hat geschrieben: Freitag 12. September 2025, 05:48
@moe: Ergänzend: In allen mir bekannten Toolkits sollte man Widgets nicht fest positionieren sondern Layoutmanager verwenden.
Hi, das ist mir bekannt. Ich hatte der Einfachheit halber die Widgets erst mal fest positioniert.