PySide/pl

Wprowadzenie

Biblioteka PySide zapewnia dostęp do wieloplatformowego zestawu narzędzi graficznego interfejsu użytkownika (GUI) Qt z poziomu Pythona. Qt jest zbiorem bibliotek w C++, ale dzięki PySide te same komponenty można używać z Pythona. Każdy interfejs graficzny, który można utworzyć w C++, można również tworzyć i modyfikować w Pythonie. Zaletą używania Pythona jest to, że interfejsy Qt można rozwijać i testować na żywo, ponieważ nie musimy kompilować plików źródłowych.

Podczas instalacji programu FreeCAD powinny być zainstalowane zarówno Qt, jak i PySide jako część pakietu. Jeśli samodzielnie kompilujesz program, musisz upewnić się, że obie biblioteki są zainstalowane, aby FreeCAD działał poprawnie. Oczywiście PySide będzie działać tylko wtedy, gdy obecne jest Qt.

W przeszłości FreeCAD używał PyQt, innej biblioteki powiązań Qt dla Pythona, ale w 2013 roku (commit 1dc122dc9a) projekt przeszedł na PySide, ponieważ posiada ono bardziej liberalną licencję.

Aby uzyskać więcej informacji, zobacz strony:

Przykłady stworzone z PySide. Po lewej: proste okno dialogowe. Po prawej: bardziej złożone okno dialogowe z wykresami.

PySide we FreeCAD z Qt5

FreeCAD został opracowany z myślą o używaniu Pythona 2 i Qt4. W miarę jak te dwie biblioteki stały się przestarzałe, FreeCAD przeszedł na Pythona 3 i Qt5. W większości przypadków przejście to odbyło się bez konieczności łamania kompatybilności wstecznej.

Zazwyczaj moduł PySide zapewnia wsparcie dla Qt4, podczas gdy PySide2 zapewnia wsparcie dla Qt5. Jednak w FreeCAD nie ma potrzeby bezpośredniego używania PySide2, ponieważ dołączony jest specjalny moduł PySide, który obsługuje Qt5.

Ten moduł PySide znajduje się w katalogu Ext/ instalacji FreeCAD skompilowanej dla Qt5.

/usr/share/freecad/Ext/PySide

Moduł ten po prostu importuje niezbędne klasy z PySide2 i umieszcza je w przestrzeni nazw PySide. Oznacza to, że w większości przypadków ten sam kod może być używany zarówno z Qt4, jak i Qt5, pod warunkiem korzystania z pojedynczego modułu PySide.

PySide2.QtCore -> PySide.QtCore
PySide2.QtGui -> PySide.QtGui
PySide2.QtSvg -> PySide.QtSvg
PySide2.QtUiTools -> PySide.QtUiTools

Jedynym nietypowym aspektem jest to, że klasy PySide2.QtWidgets są umieszczone w przestrzeni nazw PySide.QtGui.

PySide2.QtWidgets.QCheckBox -> PySide.QtGui.QCheckBox

Przewiń na górę strony

Przykłady użycia PySide

Przykłady PySide są podzielone na 3 części, różniące się stopniem zaawansowania w zakresie PySide, Pythona i wewnętrznych mechanizmów FreeCAD. Pierwsza strona zawiera przegląd PySide; druga i trzecia strona to w większości przykłady kodu na różnych poziomach.

Oczekuje się, że te przykłady będą pomocne na początek, a następnie użytkownik może korzystać z innych zasobów dostępnych online lub z oficjalnej dokumentacji.

Przewiń na górę strony

Dokumentacja

Istnieją pewne różnice w obsłudze widżetów w Qt4 (PySide) i Qt5 (PySide2). Programista powinien być świadomy tych niezgodności i w razie problemów sprawdzić oficjalną dokumentację, jeśli coś nie działa zgodnie z oczekiwaniami na danej platformie. Niemniej jednak, Qt4 jest uważane za przestarzałe, więc większość rozwoju powinna być skierowana na Qt5 i Pythona 3.

Dokumentacja PySide odnosi się do klas w stylu Pythona; jednak ponieważ Qt jest pierwotnie biblioteką C++, te same informacje powinny być dostępne w odpowiedniej dokumentacji C++.

Przewiń na górę strony