Tutorial ini difokuskan pada pengajaran penggunaan framework QT menggunakan Python sebagai bahasa pemrograman, untuk ini kita dapat menggunakan PySide dan PyQt, tetapi dalam tutorial ini kita akan menggunakan PySide karena penulis tutorial ini lebih menyukai lisensi LGPL PySide. daripada GPL atau PyQt Commercial.
Pertama ... Apa itu Python?
Menurut Wikipedia:
"Python adalah bahasa pemrograman dengan interpretasi tingkat tinggi yang filosofinya menekankan sintaks yang sangat bersih dan kondusif untuk kode yang dapat dibaca."
Python adalah bahasa pemrograman multipadradigm, sehingga mendukung paradigma pemrograman python yang berbeda, misalnya mendukung: Pemrograman Berorientasi Objek (OOP), Pemrograman Imperatif (Terstruktur) dan pada tingkat yang lebih rendah Pemrograman fungsional.
Hanya itu?
Tidak, ini juga merupakan bahasa pengetikan dinamis, yang berarti bahwa python memungkinkan kita untuk menetapkan jenis nilai yang berbeda ke variabel yang sama selama pelaksanaan program, beberapa melihatnya sebagai keuntungan, yang lain sebagai kerugian, lihat sendiri .
Selain apa yang telah disebutkan, Python memungkinkan kita (seperti banyak orang lain), memprogram baik di lingkungan web dan di desktop web, juga multiplatform, saat ini mendukung Gnu / Linux, Windows, Mac osx, Android (Jika Anda perlu menyebutkannya untuk modifikasi Anda).
Apakah QT itu?
QT adalah kerangka kerja multiplatform, 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)
Perbedaan antara PySide dan PyQt
Terutama
- Lisensi, PySide dilisensikan di bawah persyaratan LGPL dan PyQT di bawah persyaratan GPL atau di bawah lisensi komersial, jadi kami harus membayar jika membuat aplikasi tertutup.
- PySide dibuat oleh Nokia, dan PyQt oleh RiverBank.
- PySide menyelamatkan kita dari masalah penggunaan STR setiap kali kita menggunakan QString dari setiap objek QT.
Kami dapat merinci perubahan lengkap Di sini.
Persiapan:
Kami menginstal Qt:
Jika kita memiliki distro dengan Kde, kita seharusnya sudah memiliki apa yang kita butuhkan, jika tidak:
SUDO APT-GET INSTALL QT4-DEV-TOOLS
Kami menginstal PySide:
sudo apt-get install pyside pyside-tools
Aplikasi Python + QT Pertama Kami
Kami pergi ke editor teks favorit kami, saya sarankan Anda menginstal sublime-text2, tetapi Anda dapat menggunakan yang Anda sukai, dan kami mengetik kode berikut dan menyimpannya dengan nama yang kami inginkan selalu diakhiri dengan ekstensi ".py" , Saya akan menyimpan sebagai app1.py:
Kami menjalankannya dari konsol seperti ini:
python app1.py
Jendela ini akan muncul
Hanya itu saja, karena jika sebelumnya hanya memiliki konsol, apa yang Anda keluhkan? Apa yang Anda harapkan, Erp? ayolah manusia untuk sesuatu dimulai.
Sekarang mari kita jelaskan kodenya:
from PySide.QtGui import *
from sys import exit, argv
Di sini kami mengimpor modul yang diperlukan untuk eksekusi PySide.
app = QApplication(argv)
Kami membuat instance Qapplication dengan aplikasi nama.
window = Qwidget()
Kami membuat instance QWidget ().
window.setWindowTitle("Primera App PySide")
Kami menjalankan metode setWindowTitle, yang menerima String sebagai parameter untuk "menyetel" judul Qwidget kami.
window.show()
Kami menunjukkan jendela kami
exit(app.exec_())
akhirnya kita mengeksekusi siklus tak terbatas dari eksekusi QApplication () kita.
terima kasih
Terima kasih untuk mereka yang telah mengikuti saya ke sini dan bermanfaat. Untuk tutorial selanjutnya saya akan menjelaskan bagaimana mendesain jendela kita dengan QT Designer dan mengimpornya ke dalam proyek kita.
Selain itu, saya menambahkan link ke forum desde linux di mana saya memiliki tema kecil dengan perpustakaan kecil tutorial dan panduan python, yang berisi berbagai istilah termasuk:
Tutorial dasar Python
wxPython
PyQt dan PySide
Django
web2py
Pemrograman ilmiah dengan python.
Dan masih banyak lagi.
Saya berharap mereka melayani Anda, saya mengucapkan selamat tinggal, karena selalu menyenangkan menjadi bagian dari komunitas yang luar biasa ini.
Terima kasih atas kirimannya!
2 hal:
1. Qt awalnya tidak dikembangkan oleh Nokia, tetapi oleh Trolltech, yang kemudian dibeli oleh Nokia. Yang terakhir kemudian menjual Qt ke Digia.
2. Gambar pada contoh aplikasi pertama tidak cocok dengan kodenya.
Terima kasih untuk tutorialnya, saya akan mengikutinya 🙂
Anda benar sekali. Saya melewatkannya. Dan hal kedua Anda juga benar, adalah saya mengubahnya agar lebih mudah dan tidak menggunakan kelas dan saya ketinggalan modifikasinya, kesalahan pemula. Saya sudah melewati koreksi untuk beberapa editor untuk menyetujuinya.
Saya tidak bisa memodifikasi, saya serahkan pada beberapa editor.
Salam.
Kirim email ke editor dengan tutorial yang dikoreksi. Anda bisa mengirimkannya ke email @nano yang merupakan salah satu editornya
mailto: nano.world.contact@gmail.com
tolong jangan tinggalkan tutorial seperti ini
salam
Satu hal yang mengejutkan saya: mengapa Anda menggunakan "dari impor *" dalam kode Anda?
Salam!
Ini adalah cara yang benar untuk mengimpor, ketika mengimpor seperti ini Anda memberi tahu kelas khusus apa dari modul yang ingin Anda impor, dan Anda tidak memanggil modul lengkap.
Salam.
Saya merasa hal itu membingungkan. Lebih lanjut, ini tidak direkomendasikan dalam PEP8:
"Impor karakter pengganti (dari impor modul *) harus dihindari, karena membuat tidak jelas nama mana yang ada di namespace, sehingga membingungkan pembaca dan banyak alat otomatis ..."
Saya sebagian besar telah dipandu oleh kode profesional, seperti Ninja-Ide, Anda dapat melihat kodenya di sini: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyItu dilakukan di PyQt juga, tetapi dengan cara apa pun tidak ada yang memaksa Anda untuk menggunakan satu bentuk atau lainnya.
Di sini Anda dapat melihat diskusi di StackOverflow, tentang ini:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Di sana mereka menyebutkan pro dan kontra dari masing-masing gaya.
ok maaf saya tidak mengerti Anda, saya tahu itu, saya hanya melakukannya karena saya tidak akan memberikan penjelasan tentang setiap QApplication, elemen QWidget, jadi generalisasi tetapi Anda benar sekali.
Maafkan kesalahpahaman.
Tidak, Anda tidak mengerti atau Anda tidak memperhatikan ... Maksud saya menggunakan «dari impor modul *», maksud saya adalah «tanda bintang» ... di pos StackOverflow itu mereka membicarakan hal lain, tetapi mereka tetap menekankannya:
"Salah satu metode dapat diterima, tetapi jangan gunakan dari impor modul *."
Apakah sudah dimengerti sekarang?
Bahasa Jerman benar. Apa gunanya impor modul from jika Anda mengimpor semua konten dengan tanda bintang, untuk modul impor itu. Slds hanya sebagai posting yang bagus.
Ahh baiklah, sekarang saya mengerti ... pokoknya, jangan terlalu lama, saya juga pemula dalam Python. Jika Anda membuka blog saya, Anda akan melihat bahwa saya membuat postingan yang mirip dengan milik Anda tetapi dengan Gtk + 3 menggunakan PyGObject.
Salam dan terima kasih!
Di sini saya meninggalkan Pep8, dalam bahasa Spanyol merekomendasikan penggunaan im
Sangat tidak disarankan untuk menggunakan impor relatif untuk mengimpor kode dari sebuah paket. Selalu gunakan jalur absolut paket untuk semua impor. Bahkan sekarang PEP 328 [7] sepenuhnya diimplementasikan dengan Python 2.5, menggunakan impor relatif sangat tidak disarankan; impor absolut lebih portabel dan biasanya lebih mudah dibaca.
Saat mengimpor kelas dari modul, biasanya benar untuk melakukan ini
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 (pengembang py inti) merekomendasikan sesuatu seperti ini:
from PyQt4 import QtCore, QtGui
Saya ingin lebih, karena ketika bagian ke-2!?
Salam 🙂
Tutorial yang sangat bagus, ditambah lagi mungkin lebih nyaman untuk memprogram.
Berikut adalah contoh antarmuka dari awal (tanpa menggunakan QtDesigner).
https://github.com/xr09/metrocontador
Aplikasi dhunter luar biasa, di sini kami bahkan tidak tahu berapa mereka menagih kami untuk listrik, salam haha.
Terima kasih, ini adalah salah satu aplikasi yang dibuat untuk penggunaan pribadi dan melayani orang lain. Di sini, di Kuba, tanda terima dipecah dengan tarif, mudah untuk menyalin algoritme.
Saya akan sangat menyadari kursus ini. Saya telah tertarik dengan aplikasi lintas platform sejak lama dan menurut saya kombinasi Python + QT / Pyside adalah pilihan yang bagus. Salam dan selamat atas inisiatifnya
Saya mengikuti semua langkah persis seperti yang Anda katakan tetapi ketika saya menjalankan aplikasi app1.py di terminal, ia memberi tahu saya Traceback (panggilan terakhir terakhir):
File "app1.py", baris 1, dalam
dari PySide.QtGui impor *
ImportError: Tidak ada modul bernama PySide.QtGui. Untuk apa ini ?.
itu karena Anda menggunakan versi python sebagai penerjemah default, tetapi Anda tidak menginstal pyside untuk versi itu.
Coba tambahkan di awal file:
#! usr / bin / python3
atau
#! usr / bin / python2
Saya sarankan Anda menggunakan Eclipse dengan pydev dan mengkonfigurasi penerjemah dengan baik.
slds
#! / usr / bin / python3
atau
#! / usr / bin / python2
PySide belum kompatibel dengan Python3, berhati-hatilah dengan itu, dan kedua, periksa impor melalui konsol python interaktif, sehingga Anda tahu apakah Anda telah menginstalnya atau belum, itu juga menginstal pip.
Bagaimana cara memverifikasinya?
Dalam konsol gunakan "Python", bagaimanapun saya sarankan Anda masuk ke perpustakaan yang saya tinggalkan di bawah di posting dan download "python untuk semua orang", Anda perlu lebih banyak basis.
Salam dan semoga berhasil.
Terima kasih banyak, itu sangat membantu saya.
lihat teman F3niX Saya menemukan ini, tampaknya untuk python 3.3.2 di windows (yang saya miliki sampai minggu depan) mereka memiliki binari untuk 32 bit dan 64 bit, saya mencoba contoh Anda dan berfungsi dengan python 3.3.2 dan Saya menggunakan The PyScripter yang menginstal lingkungan yang berbeda, jika Anda membuka python 3 itu menjalankan skrip sebagai python 3 dan jika Anda membuka 2.7 itu mengeksekusinya sebagai 2.7 dan seterusnya (secara logis Anda harus menginstal versi python ... itu dimengerti)
http://qt-project.org/wiki/PySide_Binaries_Windows
Aku akan tinggalkan kamu di sana, gosip, mungkin itu akan melayani orang lain 😀
Saya mendapatkan kesalahan yang sama.
Apakah Anda telah menginstal PySide?
Saya sudah menginstalnya.
Dan coba dengan PyQT4, instal dan kemudian ubah baris PySide untuk PyQT4 atau PyQt4, dan berikan untuk dieksekusi. jojo. Gunakan gerhana. Keberuntungan.
Bagaimana aku melakukan itu?.
Terima kasih banyak !!! Menunggu bab kedua
Untuk hari Jumat ini saya dapat mempublikasikannya (Universitas memberi saya sedikit penuh) salam.
Teman F3nIX Saya sedang menunggu tutorial Anda N ° 2, 3, 4… N hehehe
Saya sudah menginstal linux saya yang sangat elegan dengan PySide menunggu dan segalanya!
Mari kita lihat kapan dia didorong untuk menunjukkan tutor baru 😀
Permisi teman, saya sudah punya draf tapi pekerjaan dan studi belum memberi saya waktu, saya berjanji akan mendapatkan sesuatu minggu ini.
Salam hangat
Halo, saya sudah lama tertarik belajar Python tetapi saya memiliki beberapa keraguan. Yang saya inginkan adalah membuat aplikasi untuk meningkatkan sedikit proses informasi bisnis keluarga tempat saya bekerja, saya ingin melakukan sesuatu untuk windows, dengan windows pada awalnya, semuanya akan berfungsi di satu pc dan kemudian bisa terhubung melalui internet ke database yang akan dihubungkan dengan beberapa komputer. Ada banyak keragaman dalam hal GUIing aplikasi dan itu membuat saya pusing. Apa yang Anda rekomendasikan untuk memberikan tampilan yang modern dan menarik? Saya juga akan membuat beberapa grafik statistik dan mencetak laporan, apa yang dapat saya gunakan untuk itu? salam
Halo, bagus sekali postingan Anda, saya punya pertanyaan. Bisakah saya menjual aplikasi saya yang dibuat dengan pyside tanpa masalah?
Memang, lisensi selalu gila, tetapi lisensi perangkat lunak gratis juga memungkinkan Anda menjual perangkat lunak, yang terjadi adalah GPL memaksa Anda untuk mendistribusikan kode, tidak seperti LGPL, yang tidak memaksa Anda untuk melakukannya.
Bagaimanapun, saya bukan ahli perizinan.
Salam.