Bu eğitim, Python'u bir programlama dili olarak kullanarak QT çerçevesinin kullanımını öğretmeye odaklanmıştır, bunun için hem PySide hem de PyQt kullanabiliriz, ancak bu eğitimde PySide kullanacağız çünkü bu eğitimin yazarı LGPL PySide lisansını daha çok seviyor. GPL veya PyQt Commercial'dan daha fazla.
İlk olarak ... Python nedir?
Wikipedia'ya göre:
"Python, felsefesi çok temiz sözdizimini vurgulayan ve okunabilir kodu tercih eden çok yüksek seviyeli bir yorumlanmış programlama dilidir."
Python, çoklu-yayınlı bir programlama dilidir, bu nedenle farklı python programlama paradigmalarını destekler, örneğin şunları destekler: Nesne Yönelimli Programlama (OOP), Zorunlu Programlama (Yapılandırılmış) ve daha az ölçüde İşlevsel programlama.
Sadece bu?
Hayır, aynı zamanda dinamik bir yazım dilidir, yani python, programın yürütülmesi sırasında aynı değişkene farklı türde değerler atamamıza izin verir, bazıları bunu bir avantaj, diğerleri dezavantaj olarak görür, kendiniz görün .
Yukarıda belirtilenlere ek olarak, Python (diğerleri gibi) hem web ortamında hem de web masaüstünde programlama yapmamıza izin verir, aynı zamanda çapraz platformdur, şu anda Gnu / Linux, Windows, Mac osx, Android'i desteklemektedir ( değişikliğiniz için bunlardan bahsetmeniz gerekir).
QT nedir?
QT, başlangıçta Nokia tarafından geliştirilmiş, daha sonra uygulama geliştirme için kullanılan Digia'ya satılmak üzere çok platformlu bir çerçevedir, C ++ ile yazılmıştır, ancak Bağlamalar aracılığıyla diğer dillerde de kullanılabilir (bizim durumumuzda PySide veya PyQt)
PySide ve PyQt arasındaki farklar
Esasen
- Lisans, PySide, LGPL koşulları kapsamında lisanslanmıştır ve PyQT, GPL koşulları veya ticari bir lisans kapsamındadır, bu nedenle kapalı bir uygulama oluşturmamız durumunda ödeme yapmamız gerekir.
- PySide Nokia tarafından ve PyQt RiverBank tarafından oluşturulmuştur.
- PySide, her bir QT nesnesinin QStringini her kullandığımızda STR kullanma zahmetinden kurtarır.
Tüm değişiklikleri detaylandırabiliriz Burada.
hazırlık:
Qt'yi kuruyoruz:
Kde ile bir dağıtımımız varsa, ihtiyacımız olana zaten sahip olmalıyız, eğer yoksa:
sudo apt-get install qt4-dev-araçları
PySide'ı kuruyoruz:
sudo apt-get install pyside pyside-tools
İlk Python + QT Uygulamamız
Favori metin düzenleyicimize gidiyoruz, sublime-text2 kurmanızı tavsiye ederim, ancak tercih ettiğinizi kullanabilirsiniz ve aşağıdaki kodu yazıp her zaman ".py" uzantısıyla bitmesini istediğimiz adla kaydediyoruz. , App1.py olarak kaydedeceğim:
Bunu konsoldan şu şekilde çalıştırıyoruz:
python app1.py
Bu pencere görünmeli
Ne? Sadece bu, çünkü daha önce sadece bir konsolunuz olsaydı, neden şikayet ediyorsunuz? Ne bekliyordun, Erp mi? Hadi adamım bir şey başlıyor.
Şimdi kodu açıklayalım:
from PySide.QtGui import *
from sys import exit, argv
Burada PySide yürütmesi için gerekli modülleri içe aktarıyoruz.
app = QApplication(argv)
Qapplication örneğini name app ile oluşturuyoruz.
window = Qwidget()
QWidget () örneğini oluşturuyoruz.
window.setWindowTitle("Primera App PySide")
Qwidget'imizin başlığını "ayarlamak" için parametre olarak bir String alan setWindowTitle yöntemini çalıştırıyoruz.
window.show()
Penceremizi gösteririz
exit(app.exec_())
son olarak QApplication () programımızın sonsuz yürütme döngüsünü çalıştırıyoruz.
teşekkürler
Beni burada takip eden ve yararlı olanlara teşekkür ederim. Bir sonraki eğitimde, pencerelerimizi QT Designer ile nasıl tasarlayacağımızı ve bunları projelerimize nasıl aktaracağımızı açıklayacağım.
Adicional mente les añado el link al foro de desde linux donde tengo un pequeño tema con una pequeña biblioteca de tutoriales y guías de python, que contiene diferentes termas que incluyen:
Temel Python Öğreticileri
wxPython
PyQt ve PySide
Django
web2py
Python'da bilimsel programlama.
Ve daha fazlası.
Umarım size hizmet ederler, hoşçakal diyorum, bu harika topluluğa ait olmak her zamanki gibi bir zevktir.
Gönderi için teşekkürler!
2 şey:
1. Qt orijinal olarak Nokia tarafından değil, daha sonra Nokia tarafından satın alınan Trolltech tarafından geliştirildi. İkincisi daha sonra Qt'yi Digia'ya sattı.
2. İlk uygulama örneğindeki görüntü, kodla eşleşmiyor.
Eğitim için teşekkürler, takip edeceğim 🙂
Kesinlikle haklısın, kaçırdım. Ve senin de haklı olduğun ikinci şey, onu daha kolay hale getirmek ve sınıfı kullanmamak için değiştirdim ve değişikliği, başlangıç hatalarını kaçırdım. Bazı editörlerin onaylaması için düzeltmeleri geçtim.
Değiştiremem, bir editöre bırakıyorum.
Selamlar.
Düzeltilmiş öğretici ile bir editöre e-posta gönderin. editörlerden biri olan @ nano'nun e-postasına gönderebilirsiniz
mailto: nano.world.contact@gmail.com
lütfen öğreticiyi böyle bırakmayın
Saygılarımızla
Dikkatimi çeken bir şey var: kodunuzda neden "içe aktarmadan *" kullanıyorsunuz?
Selamlar!
İçe aktarmanın doğru yolu budur, bu şekilde içe aktarırken modülün hangi sınıfını içe aktarmak istediğinizi söylersiniz ve tüm modülü çağırmazsınız.
Selamlar.
Bu tür kafa karıştırıcı buluyorum. Ayrıca, PEP8'de tavsiye edilmez:
"Joker karakter içe aktarmalarından (modül içe aktarımından *) kaçınılmalıdır, çünkü ad alanında hangi adların mevcut olduğunu belirsizleştirirler, hem okuyucular hem de birçok otomatik araç kafasını karıştırır ..."
Ninja-Ide gibi çoğunlukla profesyonel kodlar tarafından yönlendirildim, kodu burada görebilirsiniz: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyPyQt'da da yapılır, ancak herhangi bir biçimde sizi bir formu veya diğerini kullanmaya zorlayan hiçbir şey yoktur.
Burada StackOverflow'da bununla ilgili bir tartışma görebilirsiniz:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Orada stillerin her birinin artılarını ve eksilerini belirtiyorlar.
ok üzgünüm seni anlamadım, biliyorum, bunu sadece QApplication, QWidget öğelerinin her biri için bir açıklama yapmayacağım için yaptım, sonra genelleme yapacağım ama kesinlikle haklısın.
Yanlış anlaşılmayı affedin.
Hayır, anlamadınız ya da dikkat etmediniz ... "modül içe aktarmadan *" kullanmaktan bahsediyorum, yani, o StackOverflow gönderisinde "yıldız işareti" ... başka bir şeyden bahsediyorlar, ama yine de vurguluyorlar:
"Her iki yöntem de kabul edilebilir, ancak modül içe aktarımından * kullanmayın."
Şimdi anlaşıldı mı?
Almanca haklı. Tüm içeriği asterikle içe aktarırsanız, bu içe aktarma modülü için modülden içe aktarmanın ne faydası var? Slds sadece güzel yazı.
Ahh peki, şimdi anlıyorum… her neyse, beni fazla uzun sürmesin, ben de Python'da acemiyim. Bloguma uğrarsanız, PyGObject kullanarak Gtk + 3 ile sizinkine benzer bir gönderi yaptığımı göreceksiniz.
Selamlar ve teşekkürler!
Burada Pep8'i bırakıyorum, İspanyolca'da im kullanımını tavsiye ediyorum
Bir paketten kod içe aktarmak için göreli içe aktarmaların kullanılması kesinlikle tavsiye edilmez. Tüm içe aktarmalar için her zaman mutlak paket yolunu kullanın. PEP 328 [7] Python 2.5'te tamamen uygulandığına göre, göreceli içe aktarımların kullanılması ciddi şekilde tavsiye edilmiyor; mutlak içe aktarmalar daha taşınabilir ve genellikle daha okunabilirdir.
Bir modülden bir sınıfı içe aktardığınızda, bunu yapmak genellikle doğrudur
Sınıfımdan Sınıfımı içe aktar
foo.bar.yourclass'tan YourClass'ı içe aktarın
selamlar
Oku bunu: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (çekirdek py geliştiricisi) şuna benzer bir şey önermektedir:
from PyQt4 import QtCore, QtGui
2. bölüm ne zaman için daha fazlasını istiyordum!?
Selamlar 🙂
Çok iyi öğreticiler, ayrıca programlamak daha rahat olabilir.
İşte sıfırdan bir arayüz örneği (QtDesigner kullanmadan).
https://github.com/xr09/metrocontador
Dhunter uygulaması mükemmel, burada bizden elektrik için ne kadar ücret aldıklarını bile bilmiyoruz, haha selamlar.
Teşekkürler, kişisel kullanım için yapılan ve başkalarına hizmet eden uygulamalardan biri. Burada Küba'da makbuz oranla ayrıntılı olarak belirtilmiştir, algoritmayı kopyalamak kolaydır.
Bu kurstan çok haberdar olacağım. Uzun zamandır çapraz platform uygulamalarıyla ilgileniyorum ve Python + QT / Pyside kombinasyonunun harika bir seçenek olduğunu düşünüyorum. Girişim için selamlar ve tebrikler
Tüm adımları aynen söylediğiniz gibi takip ettim ama terminalde app1.py uygulamasını çalıştırdığımda bana Traceback (en son çağrı son) diyor:
"App1.py" dosyası, satır 1, içinde
PySide.QtGui'den içe aktarma *
ImportError: PySide.QtGui adlı modül yok. Bu ne için?
bunun nedeni, varsayılan yorumlayıcı olarak python'un bir sürümünü kullanmanız, ancak bu sürüm için yüklü pyside'iniz olmamasıdır.
Dosyanın başına eklemeyi deneyin:
#! usr / bin / python3
ya da başka
#! usr / bin / python2
Eclipse'i pydev ile kullanmanızı ve yorumlayıcıyı iyi yapılandırmanızı öneririm.
SLD'ler
#! / usr / bin / python3
ya da başka
#! / usr / bin / python2
PySide henüz Python3 ile uyumlu değildir, buna dikkat edin ve ikinci olarak, etkileşimli python konsolu aracılığıyla içe aktarmaları kontrol eder, böylece onu kurup kurmadığınızı bilirsiniz, ayrıca pip yükler.
Nasıl doğrularım?
Bir konsolda "Python" kullanın, her neyse, aşağıda yazıda bıraktığım kitaplığa girmenizi ve "herkes için python" u indirmenizi öneririm, daha fazla tabana ihtiyacınız var.
Selamlar ve şans.
Çok teşekkür ederim, bana çok yardımcı oldu.
arkadaşa bak F3niX Bunu buldum, görünen o ki, pencerelerde (önümüzdeki haftaya kadar sahip olduğum şey olan) python 3.3.2 için 32 bit ve 64 bitlik ikili dosyalar var, örneğinizi denedim ve python 3.3.2 ile çalışıyor ve Farklı ortamlar kuran PyScripter kullanıyorum, python 3'ü açarsanız betikleri python 3 olarak çalıştırır ve 2.7'yi açarsanız bunları 2.7 olarak çalıştırır vb. anlaşıldı)
http://qt-project.org/wiki/PySide_Binaries_Windows
Seni orada bırakacağım dedikodu, belki başkasına hizmet eder 😀
Ben de aynı hatayı alıyorum.
PySide kurulu mu?
Yükledim.
Ve PyQT4 ile yüklemeyi deneyin ve ardından PyQT4 veya PyQt4 için PySide satırlarını değiştirin ve çalıştırın. jojo. Tutulmayı kullanın. Şans.
Bunu nasıl yaparım?.
Çok teşekkür ederim !!! İkinci bölümü bekliyorum
Bu Cuma günü selamlar yayınlayabilirim (Üniversite biraz dolu).
Arkadaş F3nIX öğreticinizi bekliyorum N ° 2, 3, 4… N hehehe
PySide bekleme ve her şeyle birlikte çok zarif linux'umu zaten kurdum!
Bakalım yeni bir öğretmen göstermeye ne zaman teşvik ediliyor?
Affedersiniz dostum, taslak halindeyim ama iş ve çalışmalar bana zaman vermedi, bu hafta bir şeyler çıkarmaya söz veriyorum.
Büyük bir selam
Merhaba, uzun zamandır Python öğrenmekle ilgileniyorum ama bazı şüphelerim var. İstediğim, çalıştığım aile şirketinin bilgi sürecini biraz iyileştirecek bir uygulama yapmak, başta pencereler olmak üzere pencereler için bir şeyler yapmak istiyorum, hepsi tek bir bilgisayarda çalışacak ve sonra da İnternet üzerinden birkaç bilgisayarın bağlanacağı veri tabanına bağlanabilir. Uygulamayı GUIing açısından çok fazla çeşitlilik var ve bu beni başım döndürüyor. Modern ve çekici bir görünüm vermek için ne önerirsiniz? Ayrıca bazı istatistiksel grafikler yapıp raporlar yazdırırdım, bunun için ne kullanabilirim? Şerefe
Merhaba, çok güzel gönderiniz, bir sorum var, pyside ile yapılan uygulamamı sorunsuz bir şekilde satabilir miyim?
Eh, lisanslar her zaman çılgınca olur, ancak özgür yazılım lisansları aynı zamanda yazılım satmanıza da izin verir; ne olur, LGPL'nin sizi böyle yapmaya zorlamayan LGPL'den farklı olarak GPL sizi kodu dağıtmaya zorlar.
Her durumda, lisanslama konusunda uzman değilim.
Selamlar.