Langkah Pertama dengan Python + Qt # 1

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:

3

Lihat Kod

Kami menjalankannya dari konsol seperti ini:

python app1.py

Tetingkap ini akan muncul

2

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.

HUBUNGI KE FORUM

Saya harap mereka melayani anda, saya mengucapkan selamat tinggal, kerana selalu menjadi kebahagiaan untuk menjadi milik komuniti yang indah ini.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   @ kepercayaan17 kata

    Terima kasih kerana menghantar!

  2.   anubis kata

    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 🙂

    1.    f3niX kata

      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.

    2.    f3niX kata

      Saya tidak dapat mengubahsuai, saya serahkan kepada beberapa penyunting.

      Greetings.

      1.    neysonv kata

        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

  3.   Bahasa Jerman kata

    Satu perkara mengejutkan saya: mengapa anda menggunakan "dari import *" dalam kod anda?

    Salam!

    1.    f3niX kata

      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.

      1.    Bahasa Jerman kata

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

        1.    f3niX kata

          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.

          1.    f3niX kata

            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.

          2.    Bahasa Jerman kata

            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?

          3.    Felipe kata

            Jerman betul. Apa gunanya dari modul import jika anda mengimport semua kandungan dengan asterik, untuk modul import itu. Slds sama baiknya jawatan.

          4.    Bahasa Jerman kata

            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!

        2.    f3niX kata

          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

          1.    penipu kata

            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

  4.   MSX kata

    Saya mahukan lebih banyak lagi, ketika bahagian ke-2 !?
    Salam 🙂

  5.   eliotime3000 kata

    Tutorial yang sangat bagus, juga mungkin lebih selesa untuk diprogramkan.

  6.   penipu kata

    Berikut adalah contoh antara muka dari awal (tanpa menggunakan QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX kata

      Aplikasi dhunter sangat bagus, di sini kita tidak tahu berapa banyak yang mereka kenakan untuk elektrik, haha ​​salam.

      1.    penipu kata

        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.

  7.   Jose Eloy kata

    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

  8.   Bryan Rodriguez kata

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

    1.    Felipe kata

      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

      1.    Felipe kata

        #! / usr / bin / ular sawa3
        atau yang lain
        #! / usr / bin / ular sawa2

        1.    f3niX kata

          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.

          1.    Bryan Rodriguez kata

            Bagaimana saya mengesahkannya?

          2.    f3niX kata

            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.

          3.    Bryan Rodriguez kata

            Terima kasih banyak, itu sangat membantu saya.

          4.    Mauricio Tobares kata

            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 😀

      2.    Bryan Rodriguez kata

        Saya mendapat ralat yang sama.

        1.    Bahasa Jerman kata

          Adakah anda sudah memasang PySide?

          1.    Bryan Rodriguez kata

            Saya memasangnya.

        2.    Felipe kata

          Dan cubalah dengan memasangnya PyQT4 dan kemudian ubah baris PySide untuk PyQT4 atau PyQt4, dan berikannya. jojo. Gunakan gerhana. Nasib baik.

          1.    Bryan Rodriguez kata

            Bagaimana caranya?

  9.   karlinux kata

    Terima kasih banyak - banyak !!! Menunggu bab kedua

    1.    f3niX kata

      Untuk hari Jumaat ini, saya boleh menerbitkan ucapan (Universiti saya sedikit penuh).

  10.   MauricioTobares kata

    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 😀

    1.    f3niX kata

      Maaf, kawan, saya mempunyai draf tetapi kerja dan kajian tidak memberi saya masa, saya berjanji akan mengeluarkan sesuatu minggu ini.

      Salam yang besar

  11.   Dante kata

    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

  12.   jhonerrol kata

    Halo, sangat baik, kiriman anda, saya ada soalan, bolehkah saya menjual aplikasi saya yang dibuat dengan pyside tanpa masalah?

    1.    f3niX kata

      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.