Freitag, 12. April 2013

Lightning Talk - Python Meeting Duesseldorf 10.04.2013 - Scratching the surface of PySide / PyQt

So, nachdem ich dann endlich dazu kam meinen schon lang angekuendigten Lightning Talk ueber PySide / PyQt bei der Python User Group PyDDF vorzutragen, moechte ich hier nochmal meine Notizen zu den Folien veroeffentlichen.

1. Folie:

Hi, nur kurz zu meiner Person; Mein Name ist stealthbrite und ich arbeite eigentlich als Java-Entwickler. Ich werde euch nun einen kurzen Einblick in PySide / PyQt zeigen. Diese sind beide die Python Interfaces fuer Qt.

2. Folie

So, also zunaechst einmal zu den generellen Unterschieden von PySide und PyQt.
PySide steht unter dem Dach vom Qt-Project und ist Open-Source. Hinter Qt-Project steckt die Firma Digia, die ja zuletzt die Rechte von Nokia gekauft hatten. PySide selber wird anscheinend von der Firma openbossa (Erst gestern [12.04] wurden die Maintainer auf der Seite qt-project.org/Maintainers ausgetauscht. John Ehresman von Wingware ist nun der alleinige Verantwortliche) gewartet. PyQt wird von RiverbankComputing entwickelt. Hinter der Firma steck anscheinend nur eine Person. PyQt ist Closed-Source, darf aber unter der GNU GPL verwendet werden. Fuer anderweitige Lizienzierungsmodelle besteht die Moeglichkeit eine kommerzielle Lizenz zu erwerben. Nachdem Nokia die Qt Sourcen unter die LGPL stellte, wollte sie die Firma RiverbankComputing ueberreden das gleiche auch mit PyQt zu tun. Durch diese Ablehnung entstand ueberhaupt erst das PySide-Projekt. PySide steht unter der LGPL. Als Beispiel der Plattformunabhaengigkeit hier mal drei verschiede Screenshot von Spyder, Windows, Linux und Mac.

3. Folie:

Zu den technischen Unterschieden, klar sie verwenden verschiedene Imports. PySide unterstuetzt nur die API 2, welche mehr Pythonic ist. Es gibt Syntaxunterschiede bei der Verwendung der neuen Signal und Slots-Styles und bei den Qt Properties. Verschiede Namen bei den Toolscripts..Unter der angegebenen Quelle sind diese Punkte auch nochmal genauer und ausfuehrlicher Aufgelistet.

 4. Folie

Hier der Vollstaendigkeitshalber die Abhaenigkeiten. Zum Stand vom 09.04 funktioniert PySide nach wie vor nur mit Versionen von Qt unter 4.8. (Aktuell wurde gestern Qt 5.0.2 veroeffentlicht und Qt 5.1 Alpha am 8. zur Verfuegung gestellt.)

5. Folie

Nun ans eingemachte...
Alles was man fuer eine PySide App benoetigt ist zum einen 
  • die imports
    • QtCore beinhaltet die Methoden fuer das Handling von Signals und Slots und fuer die Kontrolle der App
    • QtGui enthaelt die Funktionen fuer die Widgets.
  • Hauptbestandteil ist immer die QApplication. Diese kann auch Argumente von der Command-Line erhalten
  • QLabel ist ein Widget, welches Text anzeigen kann, simple und/oder rich
  • Mit show() wird der Label dann tatsaechlich erst angezeigt
  • mit app_exec() steigt man in den main-loop der Qt App ein.

6. Folie

Da wir noch Zeit hatten konnte ich mehrere Demos vorfuehren. Als erstes zeigte ich die beiden ersten Tutorials von PySide_Tutorials, die ich schon vorbereitet hatte. Danach zeigte ich eine App die ich vor 1 Jahr in zwei Mittagspausen geschrieben hatte. Kollegen und ich bekamen immer wieder eine Liste von Ids, wo wir in der DB Sachverhalte nachschauen mussten. Um die querys zu vereinfachen, hatte ich dieses Programm geschrieben. Der Code ist auf meiner Github-Seite zu finden, zu beachten ist das hier der Old-Style fuer die Signals und Slots verwendet wurde.

Samstag, 26. Mai 2012

NetBeans 7 with Python support

- draft -

Short disclaimer, you are going to do it on your own risk, i am not responsible for any crashes etc.
Okay, for future references here are the steps on how to get Python support for NetBeans 7.1.2.
So after installing NetBeans you need to add the developer branch of the plugins by adding either

http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastSuccessfulBuild/artifact/nbbuild/nbms/updates.xml.gz
or
http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/nbms/updates.xml.gz
I went with the latter one.
You do that by going in NetBeans to Tools -> Plugins
In Settings you say add choose a name, like Developer and insert one of the two links from above.
Before you now install the python plugin you should add the jar-file from here. Just copy the file to
Harddrive:\Path\to\NetBeans 7.1.2\platform\lib\
Now restart NetBeans, if you haven't already.
Go back to Tools -> Plugins in Available Plugins choose Python and let it install. After completion you'll need to restart your IDE again. If upon restarting it doesn't automatically start you IDE don't panic, just start NetBeans manually.

As a last step we need to tell NetBeans where python resides.
Either specify it, while creating a new Project or over the Python Platforms under the Tools-DropDown-List.


Et Voilà :-)
Happy Coding.

Donnerstag, 11. August 2011

Android - Yahoo E-Mail settings

Ever tried to set up your native email client for ymail.com on your HTC Desire? Found tons of settings, somehow only a few work. Got something to do with the different domains, @yahoo.com @ymail.com @yahoo.de etc.

The one that always works for me, got a ymail.com account:
Incoming settings:
Protocol: IMAP
Email-Address: your email address
Password: your password
IMAP Server: android.imap.mail.yahoo.com
Protocol-type: SSL
Server-port: 993

Outgoing settings:
Login required: Check
Username: your user name/email address
Password: your password
SMTP Server: android.smtp.mail.yahoo.com
Protocol-type: SSL
Server Port: 465

Other Settings, not tested (well they don't work with my phone, but others say they do):

Server:Port
imap.mail.yahoo.com:143 / 993
smtp.mobile.yahoo.com:587 / 465 
pop.mail.yahoo.com:110
smtp.mail.yahoo.com:25 
pop.mail.yahoo.de:995
smtp.mail.yahoo.de:465