PySide 1.0.3 - to działa

Pierwsze wersje PySide nie pozwalały na bezbolesne uruchamianie aplikacji napisanych wcześniej z wykorzystaniem PyQt4. Projekt nadal się rozwijał i na chwilę obecną mamy dostępną wersję 1.0.3. PySide jest bibliote

Pierwsze wersje PySide nie pozwalały na bezbolesne uruchamianie aplikacji napisanych wcześniej z wykorzystaniem PyQt4. Projekt nadal się rozwijał i na chwilę obecną mamy dostępną wersję 1.0.3. PySide jest biblioteką udostępniającą w Pythonie API biblioteki Qt4. W odróżnieniu od PyQt4 udostępniana jest na bardziej liberalnej dla zamkniętego oprogramowania licencji LGPL

By sprawdzić jak obecnie wygląda zgodność obu bibliotek postanowiłem podmienić PyQt4 na PySide w mojej dość prostej aplikacji Zbrojownia Albionu.

Na początek zmieniłem importy na:
from PySide import QtCore, QtGui
Zmiany wymagało także wywołanie konstruktora klasy rodzica w klasie aplikacji z:
class MyForm(QtGui.QMainWindow):
	def __init__(self, parent=None):
		QtGui.QWidget.__init__(self, parent)
Na:
class MyForm(QtGui.QMainWindow):
	def __init__(self, parent=None):
		QtGui.QMainWindow.__init__(self, parent)
Usunąć musiałem także setMargin ze względu na brak tej metody dla QGridLayout:
self.ui.centralwidget.layout().setMargin(0)
To pozwoliło uruchomić aplikację. W czasie jej użytkowania PySide raportowało dodatkowe ostrzeżenia o niekompatybilnym użyciu metod, np:
TypeError: 'PySide.QtGui.QCheckBox.setCheckState' called with wrong argument types:
  PySide.QtGui.QCheckBox.setCheckState(int)
Supported signatures:
  PySide.QtGui.QCheckBox.setCheckState(PySide.QtCore.Qt.CheckState)

Oczywiście bardziej złożone aplikacje wykorzystujące np. wątki (QThread), czy inne podsystemy Qt4 mogą natrafić na większą ilość problemów przy przechodzeniu z PyQt4 na PySide. Biblioteka ta jednak praktycznie już jest, lub zaraz będzie odpowiednikiem PyQt4. Pytania można jednak stawiać co do zaangażowania Nokii w przyszłości. Kolejna kwestia to dostęp do dodatkowych widżetów, efektywność ich tworzenia na podstawie widżetów Qt4 (SIP dla PyQt4 jest już dość dobrze znane). Źle to obecnie nie wygląda.

blog comments powered by Disqus

Kategorie

Strony