Langkah Pertama dengan Python + Qt # 1

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:

3

Lihat Kode

Kami menjalankannya dari konsol seperti ini:

python app1.py

Jendela ini akan muncul

2

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.

TAUTKAN KE FORUM

Saya berharap mereka melayani Anda, saya mengucapkan selamat tinggal, karena selalu menyenangkan menjadi bagian dari komunitas yang luar biasa ini.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   @bayu_joo dijo

    Terima kasih atas kirimannya!

  2.   annubis dijo

    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 🙂

    1.    f3niX dijo

      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.

    2.    f3niX dijo

      Saya tidak bisa memodifikasi, saya serahkan pada beberapa editor.

      Salam.

      1.    neysonv.dll dijo

        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

  3.   Germán dijo

    Satu hal yang mengejutkan saya: mengapa Anda menggunakan "dari impor *" dalam kode Anda?

    Salam!

    1.    f3niX dijo

      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.

      1.    Germán dijo

        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 ..."

        1.    f3niX dijo

          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.

          1.    f3niX dijo

            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.

          2.    Germán dijo

            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?

          3.    felipe dijo

            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.

          4.    Germán dijo

            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!

        2.    f3niX dijo

          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

          1.    pemburu dijo

            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

  4.   MSX dijo

    Saya ingin lebih, karena ketika bagian ke-2!?
    Salam 🙂

  5.   eliotime3000 dijo

    Tutorial yang sangat bagus, ditambah lagi mungkin lebih nyaman untuk memprogram.

  6.   pemburu dijo

    Berikut adalah contoh antarmuka dari awal (tanpa menggunakan QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX dijo

      Aplikasi dhunter luar biasa, di sini kami bahkan tidak tahu berapa mereka menagih kami untuk listrik, salam haha.

      1.    pemburu dijo

        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.

  7.   Jose Eloy dijo

    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

  8.   Bryan Rodriguez dijo

    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 ?.

    1.    felipe dijo

      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

      1.    felipe dijo

        #! / usr / bin / python3
        atau
        #! / usr / bin / python2

        1.    f3niX dijo

          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.

          1.    Bryan Rodriguez dijo

            Bagaimana cara memverifikasinya?

          2.    f3niX dijo

            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.

          3.    Bryan Rodriguez dijo

            Terima kasih banyak, itu sangat membantu saya.

          4.    Mauricio Tobares dijo

            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 😀

      2.    Bryan Rodriguez dijo

        Saya mendapatkan kesalahan yang sama.

        1.    Germán dijo

          Apakah Anda telah menginstal PySide?

          1.    Bryan Rodriguez dijo

            Saya sudah menginstalnya.

        2.    felipe dijo

          Dan coba dengan PyQT4, instal dan kemudian ubah baris PySide untuk PyQT4 atau PyQt4, dan berikan untuk dieksekusi. jojo. Gunakan gerhana. Keberuntungan.

          1.    Bryan Rodriguez dijo

            Bagaimana aku melakukan itu?.

  9.   karlinux.dll dijo

    Terima kasih banyak !!! Menunggu bab kedua

    1.    f3niX dijo

      Untuk hari Jumat ini saya dapat mempublikasikannya (Universitas memberi saya sedikit penuh) salam.

  10.   Mauricio Tobares dijo

    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 😀

    1.    f3niX dijo

      Permisi teman, saya sudah punya draf tapi pekerjaan dan studi belum memberi saya waktu, saya berjanji akan mendapatkan sesuatu minggu ini.

      Salam hangat

  11.   Dante dijo

    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

  12.   jorge dijo

    Halo, bagus sekali postingan Anda, saya punya pertanyaan. Bisakah saya menjual aplikasi saya yang dibuat dengan pyside tanpa masalah?

    1.    f3niX dijo

      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.