Diferència entre revisions de la pàgina «Python: GUI»
Salta a la navegació
Salta a la cerca
Línia 38: | Línia 38: | ||
#*#:[[Fitxer:Qt-sliders1.png]] | #*#:[[Fitxer:Qt-sliders1.png]] | ||
#*# Connecta els sliders al ''text view''. Quan hi hagi un canvi als ''sliders'' s'ha d'escriure una línia al text view indicant el valor que ha pres el ''slider'' (i si és el X-horitzontal o el Y-vertical). | #*# Connecta els sliders al ''text view''. Quan hi hagi un canvi als ''sliders'' s'ha d'escriure una línia al text view indicant el valor que ha pres el ''slider'' (i si és el X-horitzontal o el Y-vertical). | ||
+ | #*#: Consulta [[PyQt: connectant signals amb slots]] | ||
# Per exercitar-se més sobre widgets: | # Per exercitar-se més sobre widgets: | ||
#* Tutorial de [http://zetcode.com/tutorials/pyqt4/widgets/ widgets 1]: QCheckBox, ToggleButton, QSlider, QProgressBar, QCalendarWidget | #* Tutorial de [http://zetcode.com/tutorials/pyqt4/widgets/ widgets 1]: QCheckBox, ToggleButton, QSlider, QProgressBar, QCalendarWidget |
Revisió del 16:11, 24 gen 2013
Hi ha multitud de llibreries per GUI en Python. En destaquem dues (multiplataforma les dues):
- PyQt
- PyGTK
En aquest curs hem triat PyQt4 per treballar. No està gaire clar el futur d'aquesta llibreria, primerament va pertànyer a l'empresa Trolltech i després va passar a Nokia on va ser força utiltizada pel desaparegut SO per mòbils Symbian. Sempre ha tingut un gran suport per aplicacions de codi obert.
GTK és una llibreria pertanyent al projecte GIMP (GTK = Gimp Tool Kit). És la llibreria utilitzada per defecte en Gnome.
La raó de la tria de Qt sobre GTK és degut a raons d'estil i de formalitat de la biblioteca.
QT
Llibreria Qt (abans de Trolltech, ara de Nokia):
- Tutorials: http://zetcode.com/tutorials/pyqt4/
- Referències:
- Nokia (original llibreria C++): http://doc.qt.nokia.com/4.7/index.html
- PyQt (bindings per Python): http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/index.html
- Intro ràpida als SIGNALs i SLOTs per Python: http://techbase.kde.org/Development/Tutorials/Python_introduction_to_signals_and_slots
- Altres tutorials Python (i Ruby, etc.): http://techbase.kde.org/Development/Tutorials#Other_programming_languages
- Referències de les tecles en Qt: http://doc.qt.nokia.com/4.7/qt.html#Key-enum
Qt pas a pas...
- Creació de l'aplicació, barres de menús i d'estat.
- Utilitzant el tutorial "First programs" de zetcode fes:
- NOTA: ves afegint cada pas en el mateix arxiu.
- Un widget amb 3 botons col·locats a diferents llocs de la pantalla (parteix de l'exemple del "Showing a tooltip").
- Connecta un dels botons (que es digui "exit") a la sortida del programa (exit).
- Afegeix un diàleg per confirmar la sortida del programa (exemple "Message box").
- Utilitzant el tutorial "First programs" de zetcode fes:
- Layouts:
- Revisa els exemples de layouts (absolut, box i grid) i fes (en un sol arxiu):
- Widgets, signals i slots
- Revisa els exemples de signals i slots i fes (en un sol arxiu):
- Un widget com el següent utilitzant un grid layout:
- Connecta els sliders al text view. Quan hi hagi un canvi als sliders s'ha d'escriure una línia al text view indicant el valor que ha pres el slider (i si és el X-horitzontal o el Y-vertical).
- Consulta PyQt: connectant signals amb slots
- Revisa els exemples de signals i slots i fes (en un sol arxiu):
- Per exercitar-se més sobre widgets:
- Tutorial de widgets 1: QCheckBox, ToggleButton, QSlider, QProgressBar, QCalendarWidget
- Tutorial de widgets 2: QPixMap, QLineEdit, QSplitter, QComboBox
- Penseu a utilitzar la documentació de Qt original, és la font més fiable.
- PyQt: pintar dintre d'un widget
- PyQt: Timers i pilotes rebotant
- PyQt: joc del mur
- PyQt4: utilitzant Qt Designer
GTK
- PyGTK:
- Pàgina oficial: http://pygtk.org/pygtk2tutorial/index.html
- Tutorials una mica millors que a la pagina oficial:
- Drawing methods: http://pygtk.org/pygtk2tutorial/sec-DrawingMethods.html
- Més Drawing methods (bon exemple): http://learngtk.org/pygtk-tutorial/drawingarea.html
- Cairo: http://www.pygtk.org/articles/cairo-pygtk-widgets/cairo-pygtk-widgets.htm
- Timers: http://tuxion.com/2010/04/16/periodic-timers-in-pygtk.html
- ...