Tutorial ini difokuskan pada pengajaran penggunaan kerangka QT menggunakan Python sebagai bahasa pengaturcaraan, untuk ini kita dapat menggunakan kedua-dua PySide dan PyQt, tetapi dalam tutorial ini kita akan menggunakan PySide kerana pengarang tutorial ini menyukai lesen LGPL PySide dengan lebih baik. daripada GPL atau PyQt Commercial.
Pertama ... Apa itu Python?
Menurut Wikipedia:
"Python adalah bahasa pengaturcaraan yang ditafsirkan tahap tinggi yang falsafahnya menekankan sintaks yang sangat bersih dan menyukai kod yang dapat dibaca."
Python adalah bahasa pengaturcaraan multipadradigm, sehingga mendukung paradigma pengaturcaraan python yang berbeza, misalnya mendukung: Pemrograman Berorientasi Objek (OOP), Pengaturcaraan Imperatif (Terstruktur) dan pada tahap yang lebih rendah Pengaturcaraan fungsional.
Itu sahaja?
Tidak, ini juga merupakan bahasa pengetikan dinamik, yang bermaksud bahawa python membolehkan kita memberikan pelbagai jenis nilai pada pemboleh ubah yang sama semasa pelaksanaan program, ada yang melihatnya sebagai kelebihan, yang lain sebagai kelemahan, lihat sendiri .
Sebagai tambahan kepada apa yang telah disebutkan, Python memungkinkan kami (seperti banyak yang lain), memprogram baik di persekitaran web dan di desktop web, ini juga lintas platform, saat ini mendukung Gnu / Linux, Windows, Mac osx, Android (Sekiranya anda perlu menyebutnya untuk pengubahsuaian anda).
Apa itu QT?
QT adalah kerangka multiplatform, yang awalnya dikembangkan oleh Nokia, untuk kemudian dijual ke Digia, yang digunakan untuk pengembangan aplikasi, ditulis dalam C ++, tetapi dapat digunakan dalam bahasa lain melalui Bindings (dalam kasus kami PySide atau PyQt )
Perbezaan antara PySide dan PyQt
Terutamanya
- Lesen, PySide dilesenkan di bawah syarat LGPL dan PyQT berada di bawah syarat GPL atau di bawah lesen komersial, jadi kami perlu membayar sekiranya membuat aplikasi tertutup.
- PySide dicipta oleh Nokia, dan PyQt oleh RiverBank.
- PySide menjimatkan masalah penggunaan STR setiap kali kita menggunakan QString dari setiap objek QT.
Kami dapat memperincikan perubahan lengkap Berikut.
Penyediaan:
Kami memasang Qt:
Sekiranya kita mempunyai distro dengan Kde, kita sudah semestinya mempunyai apa yang kita perlukan, jika tidak:
sudo apt-get install alat qt4-dev-
Kami memasang PySide:
sudo apt-get install pyside pyside-tools
Aplikasi Python + QT Pertama kami
Kami pergi ke editor teks kegemaran kami, saya mengesyorkan agar anda memasang teks luhur2, tetapi anda boleh menggunakan yang anda mahukan, dan kami taipkan kod berikut dan menyimpannya dengan nama yang kami mahukan selalu diakhiri dengan pelanjutan ".py" , Saya akan simpan sebagai app1.py:
Kami menjalankannya dari konsol seperti ini:
python app1.py
Tetingkap ini akan muncul
Apa? Hanya itu, kerana jika anda hanya mempunyai konsol sebelum ini, apa yang anda adukan? Apa yang anda harapkan, Erp? ayolah, sesuatu bermula.
Sekarang mari kita jelaskan kodnya:
from PySide.QtGui import *
from sys import exit, argv
Di sini kami mengimport modul yang diperlukan untuk pelaksanaan PySide.
app = QApplication(argv)
Kami membuat contoh Qapplication dengan aplikasi nama.
window = Qwidget()
Kami membuat contoh QWidget ().
window.setWindowTitle("Primera App PySide")
Kami menjalankan metode setWindowTitle, yang menerima String sebagai parameter untuk "menetapkan" judul Qwidget kami.
window.show()
Kami menunjukkan tingkap kami
exit(app.exec_())
akhirnya kami menjalankan kitaran pelaksanaan QApplication () yang tidak terhingga.
Terima kasih
Terima kasih untuk mereka yang telah mengikuti saya di sini dan telah berguna. Untuk tutorial seterusnya, saya akan menerangkan bagaimana merancang tingkap kami dengan QT Designer dan mengimportnya ke dalam projek kami.
Selain itu, saya menambah pautan ke forum desde linux di mana saya mempunyai tema kecil dengan perpustakaan kecil tutorial dan panduan python, yang mengandungi istilah yang berbeza termasuk:
Tutorial Python Asas
wxPython
PyQt dan PySide
Django
web2py
Pengaturcaraan ilmiah di python.
Dan banyak lagi.
Saya harap mereka melayani anda, saya mengucapkan selamat tinggal, kerana selalu menjadi kebahagiaan untuk menjadi milik komuniti yang indah ini.
Terima kasih kerana menghantar!
2 perkara:
1. Qt awalnya tidak dikembangkan oleh Nokia, tetapi oleh Trolltech, yang kemudian dibeli oleh Nokia. Yang terakhir kemudian menjual Qt kepada Digia.
2. Gambar dalam contoh aplikasi pertama tidak sepadan dengan kodnya.
Terima kasih untuk tutorialnya, saya akan mengikutinya 🙂
Anda betul betul saya terlepas. Dan perkara kedua yang anda juga betul, adalah bahawa saya mengubahnya untuk menjadikannya lebih mudah dan tidak menggunakan kelas dan saya terlepas pengubahsuaian, kesalahan pemula. Saya sudah membuat pembetulan untuk beberapa penyunting untuk menyetujuinya.
Saya tidak dapat mengubahsuai, saya serahkan kepada beberapa penyunting.
Greetings.
E-mel editor dengan tutorial yang diperbetulkan. anda boleh menghantarnya ke e-mel @nano yang merupakan salah seorang penyunting
mailto: nano.world.contact@gmail.com
jangan tinggalkan tutorial seperti ini
berkaitan
Satu perkara mengejutkan saya: mengapa anda menggunakan "dari import *" dalam kod anda?
Salam!
Ini adalah cara yang betul untuk mengimport, semasa mengimport seperti ini, anda memberitahu kelas kelas tertentu yang ingin anda import, dan anda tidak memanggil keseluruhan modul.
Greetings.
Saya rasa seperti itu membingungkan. Selanjutnya, tidak digalakkan dalam PEP8:
"Import Wildcard (dari import modul *) harus dielakkan, kerana membuatnya tidak jelas nama mana yang ada di ruang nama, membingungkan kedua pembaca dan banyak alat automatik ..."
Saya telah banyak dipandu oleh kod profesional, seperti Ninja-Ide, anda dapat melihat kodnya di sini: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyIa dilakukan di PyQt juga, tetapi dengan cara apa pun tidak ada yang memaksa anda untuk menggunakan satu bentuk atau yang lain.
Di sini anda dapat melihat perbincangan mengenai StackOverflow, mengenai perkara ini:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Di sana mereka menyebut kelebihan dan kekurangan setiap gaya.
ok maaf saya tidak faham anda, saya tahu, saya hanya melakukannya kerana saya tidak akan memberi penjelasan mengenai setiap elemen QApplication, QWidget, kemudian umumkan tetapi anda betul.
Maafkan salah faham.
Tidak, anda tidak faham atau anda tidak memberi perhatian ... Maksud saya menggunakan «dari modul import *», iaitu, saya bermaksud «asterisk» ... dalam post StackOverflow itu mereka membincangkan sesuatu yang lain, tetapi mereka tetap menekankannya:
"Mana-mana kaedah boleh diterima, tetapi jangan gunakan dari modul import *."
Adakah difahami sekarang?
Jerman betul. Apa gunanya dari modul import jika anda mengimport semua kandungan dengan asterik, untuk modul import itu. Slds sama baiknya jawatan.
Ahh, sekarang saya faham ... bagaimanapun, jangan terlalu lama, saya juga pemula di Python. Sekiranya anda melayari blog saya, anda akan melihat bahawa saya membuat catatan yang serupa dengan anda tetapi dengan Gtk + 3 menggunakan PyGObject.
Salam dan terima kasih!
Di sini saya meninggalkan Pep8, dalam bahasa Sepanyol mengesyorkan penggunaan im
Sangat tidak disarankan untuk menggunakan import relatif untuk mengimport kod dari pakej. Sentiasa gunakan jalan mutlak pakej untuk semua import. Walaupun sekarang PEP 328 [7] dilaksanakan sepenuhnya di Python 2.5, penggunaan import relatif tidak digalakkan; import mutlak lebih mudah alih dan biasanya lebih mudah dibaca.
Semasa mengimport kelas dari modul, biasanya betul untuk melakukannya
dari myclass import MyClass
dari foo.bar.yourclass import YourClass
salam
Baca ini: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (pemaju inti py) mengesyorkan sesuatu seperti ini:
from PyQt4 import QtCore, QtGui
Saya mahukan lebih banyak lagi, ketika bahagian ke-2 !?
Salam 🙂
Tutorial yang sangat bagus, juga mungkin lebih selesa untuk diprogramkan.
Berikut adalah contoh antara muka dari awal (tanpa menggunakan QtDesigner).
https://github.com/xr09/metrocontador
Aplikasi dhunter sangat bagus, di sini kita tidak tahu berapa banyak yang mereka kenakan untuk elektrik, haha salam.
Terima kasih, ini adalah salah satu aplikasi yang dibuat untuk kegunaan peribadi dan melayani orang lain. Di sini, di Cuba resit dipecah mengikut kadarnya, mudah untuk menyalin algoritma.
Saya akan sangat mengetahui kursus ini. Saya telah lama tertarik dengan aplikasi merentas platform dan saya berpendapat bahawa gabungan Python + QT / Pyside adalah pilihan yang bagus. Salam dan selamat atas inisiatif
Saya mengikuti semua langkah tepat seperti yang anda katakan tetapi ketika saya menjalankan aplikasi app1.py di terminal, ia memberitahu saya Traceback (panggilan terakhir terakhir):
Fail "app1.py", baris 1, dalam
dari PySide.QtGui import *
ImportError: Tiada modul bernama PySide.QtGui. Untuk apa ini ?.
itu kerana anda menggunakan versi python sebagai jurubahasa lalai, tetapi anda tidak memasang pyside untuk versi tersebut.
Cuba tambahkan pada awal fail:
#! usr / bin / ular sawa3
atau yang lain
#! usr / bin / ular sawa2
Saya cadangkan anda menggunakan Eclipse dengan pydev dan konfigurasikan jurubahasa dengan baik.
slds
#! / usr / bin / ular sawa3
atau yang lain
#! / usr / bin / ular sawa2
PySide belum serasi dengan Python3, berhati-hatilah dengan itu, dan kedua, ia memeriksa import melalui konsol python interaktif, jadi anda tahu anda memasangnya atau tidak, ia juga memasang pip.
Bagaimana saya mengesahkannya?
Dalam konsol menggunakan "Python", bagaimanapun saya mengesyorkan anda memasukkan perpustakaan yang saya tinggalkan di bawah ini dalam catatan dan memuat turun "python untuk semua orang", anda memerlukan lebih banyak asas.
Salam dan selamat sejahtera.
Terima kasih banyak, itu sangat membantu saya.
Lihat kawan F3niX Saya dapati ini, nampaknya untuk python 3.3.2 di tingkap (yang saya ada sehingga minggu depan) mereka mempunyai binari untuk 32 bit dan 64 bit, saya mencuba contoh anda dan ia berfungsi dengan python 3.3.2 dan Saya menggunakan The PyScripter yang memasang persekitaran yang berbeza, jika anda membuka python 3, ia menjalankan skrip sebagai python 3 dan jika anda membuka 2.7, ia akan melaksanakannya sebagai 2.7 dan seterusnya (secara logiknya anda harus memasang versi python ...
http://qt-project.org/wiki/PySide_Binaries_Windows
Saya akan tinggalkan anda di sana, gosip, mungkin ia akan melayani orang lain 😀
Saya mendapat ralat yang sama.
Adakah anda sudah memasang PySide?
Saya memasangnya.
Dan cubalah dengan memasangnya PyQT4 dan kemudian ubah baris PySide untuk PyQT4 atau PyQt4, dan berikannya. jojo. Gunakan gerhana. Nasib baik.
Bagaimana caranya?
Terima kasih banyak - banyak !!! Menunggu bab kedua
Untuk hari Jumaat ini, saya boleh menerbitkan ucapan (Universiti saya sedikit penuh).
Kawan F3nIX Saya sedang menunggu tutorial anda N ° 2, 3, 4… N hehehe
Saya sudah memasang linux saya yang sangat elegan dengan PySide menunggu dan semuanya!
Mari lihat bila dia terdorong untuk menunjukkan tutor baru 😀
Maaf, kawan, saya mempunyai draf tetapi kerja dan kajian tidak memberi saya masa, saya berjanji akan mengeluarkan sesuatu minggu ini.
Salam yang besar
Halo, saya telah lama belajar mempelajari Python tetapi saya mempunyai keraguan. Apa yang saya mahukan adalah membuat aplikasi untuk meningkatkan sedikit proses maklumat perniagaan keluarga tempat saya bekerja, saya ingin melakukan sesuatu untuk windows, dengan windows pada awalnya, semuanya akan berfungsi pada satu komputer dan kemudian ia dapat dihubungkan melalui internet ke pangkalan data yang akan dihubungkan oleh beberapa komputer. Terdapat banyak kepelbagaian dari segi GUIing aplikasi dan itu membuat saya pusing. Apa yang anda cadangkan untuk memberikan penampilan moden dan menarik? Saya juga akan membuat beberapa grafik statistik dan mencetak laporan, apa yang boleh saya gunakan untuk itu? salam
Halo, sangat baik, kiriman anda, saya ada soalan, bolehkah saya menjual aplikasi saya yang dibuat dengan pyside tanpa masalah?
Ya, lesen selalu gila, tetapi lesen perisian percuma juga membolehkan anda menjual perisian, apa yang berlaku ialah GPL memaksa anda untuk menyebarkan kod, tidak seperti LGPL, yang tidak memaksa anda untuk melakukannya.
Walau apa pun, saya bukan pakar dalam pelesenan.
Greetings.