PySide Introduction
PySide Introduction
PySide Introduction
overview
Marc Poinot
(ONERA/DSNA)
Outline
▶Qt
■ Toolkit overview
■ Model/View
▶PySide
■ pyQt4 vs PySide
■ Designer & Cython
■ Widget bindings
■ Class reuse
PySide - Introduction
ONERA/PySide-2/8
[email protected]
Qt - Facts
▶Qt is cute
■ Cross platform application framework for GUI
X Window System, Windows...
■ C++ kernel + many bindings
Including Python
■ Release v5.3 05/2014
■ License GPL+LGPL+Commercial
▶Components
■ Core: QtCore, QtGui...
■ Specialized: QtWebKit, QtSVG, QtSQL...
PySide - Introduction
ONERA/PySide-3/8
[email protected]
Qt - Example
PySide - Introduction
ONERA/PySide-4/8
[email protected]
Python bindings
▶pyQt
■ The first to come
Some services have hard coded import PyQt4
■ GPL - Use only in free software
▶PySide
■ Some syntactic & behavior differences
■ LGPL - Use allowed in proprietary software
PySide - Introduction
ONERA/PySide-5/8
[email protected]
PySide - Facts
http://pyside.github.io/docs/pyside/
▶Production process
■ Uses many steps
■ Better with setup & source management
PySide - Introduction
ONERA/PySide-6/8
[email protected]
PySide - Production process
W class Ui_W class WB(QWidget,Ui_W)
☺
A.ui uic ui_A.pyx
Designer B.py
PySide - Introduction
ONERA/PySide-7/8
[email protected]
PySide - Example
from PySide.QtCore import *
from PySide.QtGui import *
from Gview import gui
import numpy as NPY
import vtk
from os.path import splitext
class GMain(QWidget,gui.Ui_controlWindow):
#
def __init__(self):
QWidget.__init__(self,None)
self.setupUi(self)
self.b_load.clicked.connect(self.b_loadOneFile)
self.b_X.clicked.connect(self.b_xaxis)
#
def b_xaxis(self,pos=None):
if (self.c_mirror.isChecked()): self.setAxis(pos,1)
else: self.setAxis(pos,1)
#
def closeEvent(self, event):
print '*** Gview: close'
event.accept()
PySide - Introduction
ONERA/PySide-8/8
[email protected]
PySide
overview
Marc Poinot
(ONERA/DSNA)
Outline
▶Qt
■ Toolkit overview
■ Model/View
▶PySide
■ pyQt4 vs PySide
■ Designer & Cython
■ Widget bindings
■ Class reuse
PySide - Introduction
ONERA/PySide-2/8
[email protected]
Qt - Facts
▶Qt is cute
■ Cross platform application framework for GUI
X Window System, Windows...
■ C++ kernel + many bindings
Including Python
■ Release v5.3 05/2014
■ License GPL+LGPL+Commercial
▶Components
■ Core: QtCore, QtGui...
■ Specialized: QtWebKit, QtSVG, QtSQL...
■ Tools : Creator, Designer...
PySide - Introduction
ONERA/PySide-3/8
[email protected]
Qt - Example
PySide - Introduction
ONERA/PySide-4/8
[email protected]
Python bindings
▶pyQt
■ The first to come
Some services have hard coded import PyQt4
■ GPL - Use only in free software
▶PySide
■ Some syntactic & behavior differences
■ LGPL - Use allowed in proprietary software
PySide - Introduction
ONERA/PySide-5/8
[email protected]
PySide - Facts
http://pyside.github.io/docs/pyside/
▶Production process
■ Uses many steps
■ Better with setup & source management
PySide - Introduction
ONERA/PySide-6/8
[email protected]
PySide - Production process
W class Ui_W class WB(QWidget,Ui_W)
☺
A.ui uic ui_A.pyx
Designer B.py
PySide - Introduction
ONERA/PySide-7/8
[email protected]
PySide - Example
from PySide.QtCore import *
from PySide.QtGui import *
from Gview import gui
import numpy as NPY
import vtk
from os.path import splitext
class GMain(QWidget,gui.Ui_controlWindow):
#
def __init__(self):
QWidget.__init__(self,None)
self.setupUi(self)
self.b_load.clicked.connect(self.b_loadOneFile)
self.b_X.clicked.connect(self.b_xaxis)
#
def b_xaxis(self,pos=None):
if (self.c_mirror.isChecked()): self.setAxis(pos,1)
else: self.setAxis(pos,1)
#
def closeEvent(self, event):
print '*** Gview: close'
event.accept()
PySide - Introduction
ONERA/PySide-8/8
[email protected]