Αυτό το σεμινάριο επικεντρώνεται στη διδασκαλία της χρήσης του πλαισίου QT χρησιμοποιώντας το Python ως γλώσσα προγραμματισμού, για αυτό μπορούμε να χρησιμοποιήσουμε τόσο το PySide όσο και το PyQt, αλλά σε αυτό το σεμινάριο θα χρησιμοποιήσουμε το PySide επειδή ο συγγραφέας αυτού του σεμιναρίου συμπαθεί καλύτερα την άδεια LGPL PySide. από το GPL ή το PyQt Commercial.
Πρώτα ... Τι είναι η Python;
Σύμφωνα με την Wikipedia:
"Η Python είναι μια πολύ υψηλού επιπέδου ερμηνευμένη γλώσσα προγραμματισμού της οποίας η φιλοσοφία δίνει έμφαση στην πολύ καθαρή σύνταξη και ευνοεί τον αναγνώσιμο κώδικα."
Το Python είναι μια γλώσσα προγραμματισμού πολλαπλών προδιαγραφών, οπότε υποστηρίζει διαφορετικά παραδείγματα προγραμματισμού python, για παράδειγμα υποστηρίζει: Προγραμματισμός αντικειμένου (OOP), Imperative Programming (Structured) και σε μικρότερο βαθμό Λειτουργικός προγραμματισμός.
Μόνο αυτό?
Όχι, είναι επίσης μια δυναμική γλώσσα πληκτρολόγησης, που σημαίνει ότι η python μας επιτρέπει να αντιστοιχίσουμε διαφορετικούς τύπους τιμών στην ίδια μεταβλητή κατά την εκτέλεση του προγράμματος, κάποιοι το βλέπουν ως πλεονέκτημα, άλλοι ως μειονέκτημα, δείτε μόνοι σας .
Εκτός από όσα έχουν ήδη αναφερθεί, η Python μας επιτρέπει (όπως πολλοί άλλοι), προγραμματίζοντας τόσο στο περιβάλλον του ιστού όσο και στην επιφάνεια εργασίας του διαδικτύου, είναι επίσης cross-platform, προς το παρόν υποστηρίζει Gnu / Linux, Windows, Mac osx, Android (Εάν πρέπει να τα αναφέρετε για την τροποποίησή σας).
Τι είναι το QT;
Το QT είναι ένα πλαίσιο πολλαπλών μορφών, που αναπτύχθηκε αρχικά από τη Nokia, για να πωληθεί αργότερα στην Digia, η οποία χρησιμοποιείται για ανάπτυξη εφαρμογών, είναι γραμμένη σε C ++, αλλά μπορεί να χρησιμοποιηθεί σε άλλες γλώσσες μέσω Bindings (στην περίπτωσή μας PySide ή PyQt )
Διαφορές μεταξύ PySide και PyQt
Κυρίως
- Άδεια χρήσης, το PySide διαθέτει άδεια σύμφωνα με τους όρους της LGPL και το PyQT υπόκειται στους όρους της GPL ή σε εμπορική άδεια, οπότε θα πρέπει να πληρώσουμε σε περίπτωση δημιουργίας κλειστής εφαρμογής.
- Το PySide δημιουργήθηκε από τη Nokia και το PyQt από την RiverBank.
- Το PySide μας σώζει το πρόβλημα της χρήσης STR κάθε φορά που χρησιμοποιούμε το QString κάθε αντικειμένου QT.
Μπορούμε να αναλύσουμε λεπτομερώς τις ολοκληρωμένες αλλαγές Εδώ.
Προετοιμασία:
Εγκαθιστούμε το Qt:
Εάν έχουμε μια διανομή με το Kde θα πρέπει να έχουμε ήδη αυτό που χρειαζόμαστε, αν όχι:
sudo apt-get εγκαταστήστε qt4-dev-εργαλεία
Εγκαθιστούμε το PySide:
sudo apt-get install pyside pyside-tools
Η πρώτη μας εφαρμογή Python + QT
Πηγαίνουμε στον αγαπημένο μας επεξεργαστή κειμένου, σας προτείνω να εγκαταστήσετε το sublime-text2, αλλά μπορείτε να χρησιμοποιήσετε αυτόν που προτιμάτε και πληκτρολογούμε τον ακόλουθο κώδικα και τον αποθηκεύουμε με το όνομα που θέλουμε να τελειώνει πάντα με την επέκταση ".py", θα Θα αποθηκεύσω ως app1.py:
Τρέχουμε από την κονσόλα ως εξής:
python app1.py
Αυτό το παράθυρο πρέπει να εμφανιστεί
Τι; Μόνο αυτό, γιατί αν είχατε μόνο μια κονσόλα στο παρελθόν, για ποια παράπονα; Τι περιμένατε, ένα Erp; έλα έλα, κάτι ξεκινά.
Τώρα ας εξηγήσουμε τον κωδικό:
from PySide.QtGui import *
from sys import exit, argv
Εδώ εισάγουμε τις απαραίτητες λειτουργικές μονάδες για την εκτέλεση του PySide.
app = QApplication(argv)
Δημιουργούμε την παρουσία Qapplication με την εφαρμογή ονόματος.
window = Qwidget()
Δημιουργούμε την παρουσία του QWidget ().
window.setWindowTitle("Primera App PySide")
Εκτελούμε τη μέθοδο setWindowTitle, η οποία λαμβάνει μια συμβολοσειρά ως παράμετρο για να "ορίσουμε" τον τίτλο του Qwidget μας.
window.show()
Δείχνουμε το παράθυρο μας
exit(app.exec_())
τελικά εκτελούμε τον άπειρο κύκλο εκτέλεσης του QApplication ().
Ευχαριστίες
Σας ευχαριστώ για όσους με ακολούθησαν εδώ και ήταν χρήσιμοι. Για το επόμενο σεμινάριο θα εξηγήσω πώς να σχεδιάσουμε τα παράθυρά μας με το QT Designer και να τα εισαγάγω στα έργα μας.
Επιπλέον, προσθέτω το σύνδεσμο στο φόρουμ desde linux όπου έχω ένα μικρό θέμα με μια μικρή βιβλιοθήκη με σεμινάρια και οδηγούς για python, που περιέχει διαφορετικούς όρους όπως:
Βασικά μαθήματα Python
wxPython
PyQt και PySide
Django
web2py
Επιστημονικός προγραμματισμός στο python.
Και πολλά άλλα.
Ελπίζω να σας εξυπηρετούν, λέω αντίο, όπως πάντα χαρά να ανήκω σε αυτήν την υπέροχη κοινότητα.
Ευχαριστώ για την ανάρτηση!
2 πράγματα:
1. Το Qt δεν αναπτύχθηκε αρχικά από τη Nokia, αλλά από την Trolltech, η οποία αργότερα αγοράστηκε από τη Nokia. Στη συνέχεια, το τελευταίο πούλησε το Qt στην Digia.
2. Η εικόνα στο πρώτο παράδειγμα εφαρμογής δεν ταιριάζει με τον κωδικό.
Ευχαριστώ για το σεμινάριο, θα το ακολουθήσω 🙂
Έχεις απόλυτο δίκιο. Και το δεύτερο πράγμα που έχετε επίσης δίκιο, είναι ότι το άλλαξα για να το κάνω ευκολότερο και να μην χρησιμοποιήσω την τάξη και μου έλειπε η τροποποίηση, λάθη αρχαρίων. Έχω ήδη περάσει τις διορθώσεις για να εγκρίνει κάποιος συντάκτης.
Δεν μπορώ να τροποποιήσω, το αφήνω σε έναν συντάκτη.
Χαιρετισμούς.
Στείλτε email σε έναν επεξεργαστή με το διορθωμένο σεμινάριο. μπορείτε να το στείλετε στο email του @nano που είναι ένας από τους συντάκτες
mailto: nano.world.contact@gmail.com
παρακαλώ μην αφήσετε το σεμινάριο έτσι
αφορά
Ένα πράγμα με εντυπωσιάζει: γιατί χρησιμοποιείτε το "from import *" στον κωδικό σας;
Χαιρετισμούς!
Είναι ο σωστός τρόπος εισαγωγής, όταν εισάγετε έτσι, του λέτε ποια συγκεκριμένη κατηγορία της ενότητας θέλετε να εισαγάγετε και δεν καλείτε την πλήρη ενότητα.
Χαιρετισμούς.
Βρίσκω αυτό το είδος σύγχυσης. Επιπλέον, δεν συνιστάται στο PEP8:
"Οι εισαγωγές μπαλαντέρ (από την εισαγωγή μονάδας *) πρέπει να αποφεύγονται, καθώς καθιστούν ασαφές ποια ονόματα υπάρχουν στο χώρο ονομάτων, προκαλώντας σύγχυση τόσο στους αναγνώστες όσο και σε πολλά αυτοματοποιημένα εργαλεία ..."
Έχω καθοδηγηθεί κυρίως από επαγγελματικούς κωδικούς, όπως το Ninja-Ide, μπορείτε να δείτε τον κωδικό εδώ: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyΑυτό γίνεται και στο PyQt, αλλά σε οποιαδήποτε μορφή δεν υπάρχει τίποτα που σας αναγκάζει να χρησιμοποιήσετε τη μία ή την άλλη μορφή.
Εδώ μπορείτε να δείτε μια συζήτηση για το StackOverflow, σχετικά με αυτό:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Εκεί αναφέρουν πλεονεκτήματα και μειονεκτήματα καθενός από τα στυλ.
εντάξει συγγνώμη, δεν σας κατάλαβα, το ξέρω, το έκανα μόνο επειδή δεν επρόκειτο να δώσω μια εξήγηση για κάθε στοιχείο QApplication, QWidget και μετά να γενικεύσω, αλλά έχετε απόλυτο δίκιο
Συγγνώμη για την παρεξήγηση.
Όχι, δεν καταλάβατε ή δεν δώσατε προσοχή ... εννοώ τη χρήση «από την εισαγωγή μονάδας *», δηλαδή τον «αστερίσκο» ... σε αυτήν την ανάρτηση StackOverflow μιλούν για κάτι άλλο αλλά το τονίζουν ακόμα:
"Κάθε μέθοδος είναι αποδεκτή, αλλά μην τη χρησιμοποιείτε από την εισαγωγή μονάδας *."
Είναι κατανοητό τώρα;
Τα γερμανικά έχουν δίκιο. Ποια είναι η χρήση της εισαγωγής από την ενότητα εάν εισαγάγετε όλο το περιεχόμενο με τον αστερικό, για αυτήν την ενότητα εισαγωγής. Slds εξίσου ωραία θέση.
Αχ, τώρα καταλαβαίνω ... ούτως ή άλλως, μην με πάρει πολύ καιρό, είμαι επίσης αρχάριος στην Πύθωνα. Εάν σταματήσετε από το ιστολόγιό μου, θα δείτε ότι έκανα μια ανάρτηση παρόμοια με τη δική σας, αλλά με το Gtk + 3 χρησιμοποιώντας το PyGObject.
Χαιρετισμούς και ευχαριστίες!
Εδώ αφήνω το Pep8, στα Ισπανικά, συνιστώντας τη χρήση του im
Είναι ιδιαίτερα ανεπιθύμητη η χρήση σχετικών εισαγωγών για την εισαγωγή κώδικα από ένα πακέτο. Χρησιμοποιείτε πάντα την απόλυτη διαδρομή πακέτου για όλες τις εισαγωγές. Ακόμα και τώρα που το PEP 328 [7] εφαρμόζεται πλήρως στο Python 2.5, η χρήση σχετικών εισαγωγών αποθαρρύνεται σοβαρά. οι απόλυτες εισαγωγές είναι πιο φορητές και συνήθως πιο ευανάγνωστες.
Όταν εισάγετε μια τάξη από μια ενότητα, συνήθως είναι σωστό να το κάνετε αυτό
από το myclass εισαγάγετε το MyClass
από το foo.bar.yourclass εισαγάγετε το YourClass
αφορά
Διάβασε αυτό: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Ο Alex Martelli (core py developer) προτείνει κάτι τέτοιο:
from PyQt4 import QtCore, QtGui
Ήθελα περισσότερα, γιατί όταν το 2ο μέρος !;
Χαιρετισμούς 🙂
Πολύ καλά μαθήματα, επίσης μπορεί να είναι πιο άνετο να προγραμματίζετε.
Ακολουθεί ένα παράδειγμα διεπαφής από το μηδέν (χωρίς τη χρήση του QtDesigner).
https://github.com/xr09/metrocontador
Η εφαρμογή dhunter είναι εξαιρετική, εδώ δεν γνωρίζουμε καν πόσο μας χρεώνουν για ηλεκτρικό ρεύμα, χαχα χαιρετισμούς.
Σας ευχαριστώ, είναι μία από αυτές τις εφαρμογές που κάνει για προσωπική χρήση και εξυπηρετεί άλλους. Εδώ στην Κούβα η απόδειξη αναλύεται με την τιμή, είναι εύκολο να αντιγράψετε τον αλγόριθμο.
Θα γνωρίζω πολύ καλά αυτό το μάθημα. Ενδιαφέρομαι για εφαρμογές πολλαπλών πλατφορμών για μεγάλο χρονικό διάστημα και πιστεύω ότι ο συνδυασμός Python + QT / Pyside είναι μια εξαιρετική επιλογή. Χαιρετίσματα και συγχαρητήρια για την πρωτοβουλία
Ακολούθησα όλα τα βήματα ακριβώς όπως λέτε, αλλά όταν τρέχω την εφαρμογή app1.py στο τερματικό μου λέει Traceback (τελευταία τελευταία κλήση):
Αρχείο "app1.py", γραμμή 1, σε
από PySide.QtGui εισαγωγή *
ImportError: Δεν υπάρχει μονάδα με το όνομα PySide.QtGui. Για τι είναι αυτό ;.
αυτό συμβαίνει επειδή χρησιμοποιείτε μια έκδοση του python ως τον προεπιλεγμένο διερμηνέα, αλλά δεν έχετε εγκαταστήσει το pyside για αυτήν την έκδοση.
Δοκιμάστε να προσθέσετε στην αρχή του αρχείου:
#! usr / bin / python3
ή αλλιώς
#! usr / bin / python2
Σας προτείνω να χρησιμοποιήσετε το Eclipse με pydev και να διαμορφώσετε καλά τον διερμηνέα.
SLDs
#! / usr / bin / python3
ή αλλιώς
#! / usr / bin / python2
Το PySide δεν είναι ακόμη συμβατό με το Python3, να είστε προσεκτικοί με αυτό και, δεύτερον, ελέγχει τις εισαγωγές μέσω της διαδραστικής κονσόλας python, οπότε γνωρίζετε ότι έχετε εγκαταστήσει ή όχι, επίσης εγκαθιστά το pip.
Πώς μπορώ να το επαληθεύσω;
Σε μια κονσόλα χρήση "Python", ούτως ή άλλως, σας συνιστώ να εισάγετε τη βιβλιοθήκη που άφησα παρακάτω στην ανάρτηση και να κατεβάσετε το "python για όλους", χρειάζεστε περισσότερη βάση.
Χαιρετίσματα και τύχη.
Ευχαριστώ πολύ, ήταν πολύ χρήσιμο για μένα.
Κοίτα φίλε F3niX Βρήκα αυτό, φαίνεται ότι για το python 3.3.2 στα παράθυρα (που έχω μέχρι την επόμενη εβδομάδα) έχουν δυαδικά αρχεία για 32 bit και 64 bit, δοκίμασα το παράδειγμά σας και λειτουργεί με τον πύθωνα 3.3.2 και Χρησιμοποιώ το The PyScripter που εγκαθιστά διαφορετικά περιβάλλοντα, εάν ανοίξετε το python 3, εκτελεί τα σενάρια ως python 3 και αν ανοίξετε το 2.7 τα εκτελεί ως 2.7 και ούτω καθεξής (λογικά πρέπει να έχετε εγκατεστημένη αυτήν την έκδοση του python ... ειναι κατανοητο)
http://qt-project.org/wiki/PySide_Binaries_Windows
Θα σε αφήσω εκεί, κουτσομπολιά, ίσως θα εξυπηρετήσει κάποιον άλλο 😀
Έχω το ίδιο σφάλμα.
Έχετε εγκαταστήσει το PySide;
Το έχω εγκαταστήσει.
Και δοκιμάστε με το PyQT4 να το εγκαταστήσετε και στη συνέχεια να αλλάξετε τις γραμμές PySide για PyQT4 ή PyQt4 και να το εκτελέσετε. Τζότζο. Χρησιμοποιήστε την έκλειψη. Τυχη.
Πως το κάνω αυτό?.
Ευχαριστώ πολύ !!! Αναμονή για το δεύτερο κεφάλαιο
Για αυτήν την Παρασκευή μπορώ να το δημοσιεύσω (Το πανεπιστήμιο με έχει λίγο γεμάτο) χαιρετισμούς.
Φίλος F3nIX Περιμένω το σεμινάριό σας N ° 2, 3, 4… N hehehe
Έχω ήδη εγκαταστήσει το πολύ κομψό linux μου με το PySide σε αναμονή και τα πάντα!
Ας δούμε πότε ενθαρρύνεται να δείξει έναν νέο δάσκαλο 😀
Συγγνώμη φίλε, το έχω σε προσχέδια, αλλά η δουλειά και οι μελέτες δεν μου έδωσαν χρόνο, υπόσχομαι να βγάλω κάτι αυτή την εβδομάδα.
Ένας μεγάλος χαιρετισμός
Γεια σας, με ενδιέφερε να μάθω την Python για μεγάλο χρονικό διάστημα, αλλά έχω κάποιες αμφιβολίες. Αυτό που θέλω είναι να κάνω μια εφαρμογή για να βελτιώσω λίγο τη διαδικασία πληροφόρησης της οικογενειακής επιχείρησης όπου εργάζομαι, θα ήθελα να κάνω κάτι για τα παράθυρα, με παράθυρα στην αρχή, θα λειτουργούσε όλα σε έναν μόνο υπολογιστή και στη συνέχεια θα μπορούσε να συνδεθείτε μέσω Διαδικτύου στη βάση δεδομένων στην οποία θα συνδεθούν μερικοί υπολογιστές. Υπάρχει μεγάλη ποικιλία όσον αφορά το GUIing της εφαρμογής και αυτό με κάνει να ζαλίζομαι. Τι προτείνετε να του δώσετε μια μοντέρνα και ελκυστική εμφάνιση; Θα έκανα επίσης στατιστικά γραφήματα και εκτυπώσεις αναφορών, τι μπορώ να χρησιμοποιήσω για αυτό; Στην υγειά σας
Γεια σας, πολύ καλή, η ανάρτησή σας, έχω μια ερώτηση, θα μπορούσα να πουλήσω την εφαρμογή μου φτιαγμένη με pyside χωρίς κανένα πρόβλημα;
Λοιπόν, οι άδειες είναι πάντα τρελές, αλλά οι άδειες δωρεάν λογισμικού σάς επιτρέπουν επίσης να πουλάτε λογισμικό, αυτό που συμβαίνει είναι ότι η GPL σας αναγκάζει να διανείμετε τον κώδικα, σε αντίθεση με το LGPL, το οποίο δεν σας υποχρεώνει να το κάνετε.
Τέλος πάντων, δεν είμαι ειδικός στις άδειες.
Χαιρετισμούς.