Raspberry Pi'de Python geliştirme için önerilen GUI araç seti


31

Kızıma Python'a (ve kendime bir dereceye kadar) Pi'yi kullanarak öğretiyorum ve şu ana kadar çok iyi zaman geçirdik - ancak CLI bizi ancak bu zamana kadar götürebilir. Özellikle wx , Qt ve GTK olmak üzere diğer araç setlerine bakmaya başladım . Bunların hepsi genel olarak Linux için büyük bağlara sahip gibi görünüyor, ancak Ahududu Pi'ye özel pek fazla bilgi bulamıyorum. Python bağlamaları iyi olduğu sürece diğer araçlara da açığım.

Pi bunlardan birine kodlama tecrübesi olan var mı? apt-getGerekli paketleri kurmak için çalıştırmam gereken basit bir komut var mı ? Daha da iyisi, stok Raspbian imajı ile hazır bir araç seti var mı?

Not: Şu anda sorunsuz bir şekilde Raspbian kullanıyorum, ancak Arch mono kullanımının zor olduğu ABI sorunları nedeniyle cazip geliyor.

Yanıtlar:


22

Tkinter'i tavsiye ederim, Python için standart GUI kütüphanesi ve sonuçta zaten kurulu. IDLE IDE (Raspbian imajının içinde yer alan) sadece Tkinter'i desteklemiyor aynı zamanda bir Tkinter uygulaması. Ek olarak, Python kitaplarının çoğu, en azından Tkinter ile GUI oluşturma hakkında bir bölüm içerecektir. Eğer web kaynaklarını tercih ediyorsanız Pythonware'in Tkinter eğitimini incelemek isteyeceksiniz . Ek bilgi ve kaynaklar Python.org’un Tkinter sayfasında bulunabilir .


Tkinter dersi için link ikinci sayfa içindir - burada herkes isterse giriş: pythonware.com/library/tkinter/introduction/whats-tkinter.htm
Anonymous Penguin

2

15 yıl önce Tkinter'le biraz zaman geçirdim, birkaç yıl sonra wx ile bir şeyler yaptım. İşleri halledebildiğim halde, ikisini de biraz sıkıcı buldum. En son kullandığımdan beri durumun ne kadar geliştiğini veya kendi öğrenmelerimin bugün onları ne kadar kolay hale getireceğini bilmiyorum.

Ancak, son birkaç ay içinde, PyQt uyumlu bir çerçeve olan PySide'ı araştırıyorum . İnanılmaz derecede yararlı olan, bileşenleri (basmalı düğmeler, aramalar, kaydırıcılar, onay kutuları vb.) Sürükleyip bırakmanıza ve ".ui" uzantılı bir XML dosyası olarak kaydetmenize izin veren Qt Designer . pyside-uic daha sonra bunu okur ve Python kodunu üretir. Orada bazı büyük öğretici videolar var.

Bo Milanovich, Udemy'de (15 $ karşılığında) tamamladığım 29 videolu bir diziye sahip, ancak aynı zamanda Qt sitesinde listelenen ücretsiz birkaç paraya sahip: http://wiki.qt.io/PySide_Video_Tutorials . Bo, teğetlere bürünerek, derslerinde biraz “dikkati dağılmış” olabilir, ancak her biri 30 dakikalık ortalama 29 ders için kesinlikle 15 $ değerindeydi.

Ayrıca son zamanlarda " Qt Designer - Python GUI Programlama dersi ile PyQt " ( https://www.youtube.com/watch?v=Dmo8eZG5I2w ) buldum . Bu da beni sunum yapan kişinin, Qt, Tkinter ve Kivy'ye tanıtımlar sunan https://pythonprogramming.net/gui-development-tutorials/ adresine yönlendirdi . Onları izlemedim, ama izlediğim Qt Designer dersine dayanarak, pythonprogramming.net'tekileri bekliyorum.

Resmi PyQt ve PySide belgelerinin bazıları biraz eksik. Bunların çoğu, orijinal Qt dokümantasyonundan gelen bazı otomatik işlemlerle dönüştürüldü ve bitler çeviride kayboldu. Bu nedenle, https://pyside.github.io/docs/pyside/ adresindeki dokümanlar eksikse, http://doc.qt.io/ adresindeki dokümanlar bölümüne bakın ve okuduklarınızı Python'a çevirmeyi deneyin. Ama önce dersleri izleyin, çünkü sizi uzun bir yol alacaktır.

Birkaç yıl önce GTK’ya kısaca baktım. Aynı zamanda bir tasarımcı var. O yoldan tekrar geçmeyi düşündüm, ama ilgilendiğim şeyler için Qt'un arkasında daha fazla enerji var gibi görünüyordu. SADECE Kivy'yi keşfetmeye başladım, çünkü dokunmatik ekran çalışması için önerildiği anlaşılıyor.

Biraz geç, ama umarım bu yardımcı olur.


1

tkinter, Python geliştirme döngüsünün çok başında kullanılan TCL'ye GUI uzantısıdır. IDLE Python komut kabuğu tkinter kullanır.

Bir GUI için bir xorg-x11 servisine (bir arka plan programı) ve bir sunum yöneticisine ihtiyacınız var. X11, ekran aygıtı sürücülerinin yaşadığı yerdir. Orada isimler xorg-x11-drv-xxxxx ile başlıyor. X11 bir HID (İnsan Arabirim Cihazı) denetleyicisidir. Fareler, tabletler, klavyeler vb. De x11 servisine bağlanır.

Sunum yöneticim Gnome, ancak en az 1 / 2'si var. Anladığım kadarıyla Xfce hafif olanlardan biri.

GUI Python geliştirme araçları için DrPython'u kullanıyorum (kod düzenleme, sözdizimi kontrolü ve hata ayıklama). wxGlade, Visual Basic'e çok benzeyen bir Python sürükle ve bırak GUI geliştirme ortamıdır. Her ikisi de wxPython uygulamalarıdır ve kök ayrıcalıkları gerektirmez. Sourceforge.net adresinden indirilebilirler.

R-Pi-3b'im sipariş üzerine. Torunumun zaten bir tane var, bu yüzden emir verildi. On yıldan fazla bir süredir 60 yıldan fazla bir süredir Python'da programlama yapıyorum. Özel diller için bir dizi derleyici ve ev otomasyonu için istemci / sunucu uygulamaları geliştirdim.


1

Ahududu pi 2,3 ile çalışan GUI uygulamasını geliştirdim. Hem tkinter hem de pyQt4 kullandım.

Ancak, hem tkinter hem de pyQt4'ün, widget'larınızı yerleştirmek için daha fazla kodlama gerektirdiği ve düzen düzenlemeleri için çok zaman harcadığı bir yer.

Önerimde, kullanıcı arabiriminizi oluşturmak için QT4 tasarımcısını kullanın. Sürükle ve bırak işlevinden dolayı çok kolaydır, daha sonra pyuic4 komutunu kullanarak .ui dosyasından python betiği .py oluşturabilir ve qu4 tasarımını kullanarak Ui'nize görüntüler ekleyebilirsiniz Daha sonra pyrcc komutunu kullanarak dönüştürmeniz gereken resosurce.rc dosyasını yapmanız gerekir.

Mevcut birkaç ders vardır.


0

AppJar'a bir göz atın. QT4 Designer'ın yukarıda bahsettiği sürükle ve bırak özelliklerine sahip değil, Ne yapmaya çalıştığınıza bağlı olarak birkaç dakika içinde hoş bir GUI oluşturabilirsiniz. Web sayfalarındaki Dokümanlar birçok harika örnek göstermektedir. http://appjar.info/


-2

pygtk için gitmek onun en iyisi ve kaya gibi sağlam ama yeni başlayanlar için kolay


5
Bazı ek detaylar bu cevabın geliştirilmesine yardımcı olacaktır (diğer alternatiflere göre en iyisini ne yapar, nasıl kurarım, ne kolaylaştırır).
Steve Robillard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.