Python, kullanıcı arayüzü geliştirmek için iyi bir seçim mi? Eğer öyleyse, wxPython veya Tkinter?


12

Python kullanarak bir masaüstü uygulaması geliştirmek için sabırsızlanıyorum. Yeni başlayan biriyim ve Python'da yeterli uzmanlığa sahip değilim. Ben de bir Java programcısıyım. Swing kullanarak UI oluşturma konusunda biraz deneyimim olmasına rağmen, Swing üzerinde geliştirilen uygulamaların çok yavaş olduğunu görüyorum. Peki bu, büyük uygulamaların çoğunun tarayıcılarda / oyunlarda olduğu gibi C / C ++ 'da yapılmasının bir nedeni olabilir.

C ++ 'da bir kullanıcı arayüzü geliştirmek daha iyi bir seçenek olabilir, ancak C / C ++' a göre üst düzey bir programlama dili seçmeyi tercih ediyorum. Bu yüzden Python kendisi doğal olarak C / C ++ üzerine inşa gibi Java Salıncak üzerinde iyi performans varsayarak Python seçti.

Python'un bir kullanıcı arayüzü geliştirmek için Java Swing'den daha iyi olduğu varsayımıyla devam edebilir miyim? Veya kullanıcı arayüzü geliştirmek için Python'dan daha iyi bir dil mi öneriyorsunuz? Python ile devam edersem, hangi araç setini Tkinter veya wxPython kullanmalıyım ve neden?


4
Varsayımlarınız hatalı görünüyor. Python, C / C ++ üzerine kuruludur, ancak JVM de öyle (büyük olasılıkla).
user281377

Neden kendinizi Tkinter ve wxPython ile sınırlandırıyorsunuz?
Anto

2
Kendimi sınırlamaya çalışmıyorum. Bunların GUI gelişimi için iyi bilinen iki araç kiti olduğu izlenimindeydim.
Vamsi Emani

Lazarus IDE, Free Pascal Compiler ve Object Pascal, GUI'leri geliştirmenin çok hızlı ve kolay bir yolunu sunar.
systemovich

Yanıtlar:


15

Python kullanarak bir windows masaüstü uygulaması geliştirmeye başladım. PyQt kullanıyorum .

Kurulumu ve çalıştırılması çok kolaydır. Öğretici burada: http://zetcode.com/tutorials/pyqt4/firstprograms/ ne kadar kolay gösterir, kodu göstereceğim:

#!/usr/bin/python

# simple.py

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)

widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('simple')
widget.show()

sys.exit(app.exec_())

Bu sana bir pencere açıyor.

Python öğrenmek istiyorum ve işveren bana zaman veriyor çünkü C # / WPF üzerinde Python / PyQt seçti.

Deneyimimde kullanımı daha kolay olduğu için müdürüm bana PyQt'u diğer çerçevelerden tavsiye etti.



Daha önce PySide kullandım ve oldukça iyi çalışıyor. Ancak PySide'ın gelecekteki gelişimi, Nokia Qt.
jhocking

5

Windows veya OSX için yerel bir GUI geliştirmek istiyorsanız, WkinPython'dan (python için wxWidgets) sizi daha da yakınlaştıracağı için Tkinter (pythonic kıyafetleri olan GUI kütüphanesi Tk) kullanmanızı tavsiye ederim. . Ölçmeyi kolay bulmuyorum, ama gözlerime Windows ve OSX ekran görüntüleri . YMMV. Tk ( önemli: Ttk widget seti ile) çok güçlü bir yerli görünümlü olduğunu biliyorum .

Eğer Linux için geliştiriyorsanız… Gerçekten şu anda tercih edilen platformun neye benzediğini takip etmediğim için gerçekten diğerine tavsiye edemem. :-)


1
Tkinter'ın kutunun dışında sıkça kullanılan birçok widget sağlamadığını unutmayın. Örneğin, bir ilerleme çubuğu istiyorsanız, kendiniz bir tane yazmanız veya bir başkasının yazdığı birini bulmanız gerekir.
James

1
Bekleyin, ancak wxWidgets yerel GUI öğelerini kullanır. En azından, C ++ bağlamaları yapar. Python'dan o kadar emin değilim.
Zhehao Mao

@ZhehaoMao wxWidgets yerel ve yerel olmayan öğelerin bir karışımıdır. Bazı öğeler yerel olanlara benzer, ancak aslında daha düzgün bir API için özel olarak oluşturulmuştur.
Hubert Grzeskowiak

3

Python'u zaten biliyor ve seviyorsanız iyi bir seçim olduğunu söyleyebilirim. Aksi takdirde, zaten bildiğiniz dili (Java) kullanın. Buradaki tek istisna, bu bir öğrenme projesi ise, bu durumda diğer dillerle deneyim kazanmanın iyi bir fikir olacağını öneririm.

Buradaki noktam, Python'un UI uygulamaları için Java'dan gerçekten daha iyi veya daha kötü olmadığı, bu nedenle çalışmak istediğiniz herhangi bir aracı kullanın.


1

Bunun gibi tüm sorular için verilebilecek tek gerçek tavsiye, "bir deneyin ve beğenip beğenmediğinizi görün" dir - programlama dilleri hakkındaki diğer insanların görüşleri (özellikle en sevdikleri veya en nefret edilen dilleri olabilecek şeyler) nadiren çok değerlidir .

Ancak, benim 5 sent değer - hızlı, basit Windows GUI'leri çalmak için, Python ve wxWidgets kombinasyonu çok iyi çalışıyor. Ama dediğim gibi, kendiniz için deneyin - Python deneyimi olmasa bile, bir saat kadar basit ama kullanışlı bir şey bir araya getirebilirsiniz (kesinlikle çok fazla yok).


1

Herkes arama motoru aracılığıyla burada biterse: hızla PAGE jeneratör kullanarak bazı Tkinter örnekleri oluşturabilirsiniz. Size gitmek istediğiniz yere ulaşmak için ne alacağı fikrini verecek bazı iyi kod üretir. Yazarın belirttiği gibi kesinlikle genelliğe kavuşmanızı gerektirir, ancak suları test etmek veya nereye gittikleri hakkında genel bir fikir edinmek isteyen biri için iyi bir araçtır. SourceForge üzerinde PAGE .


-1

Bazı uygulama türlerinin Python'da yazmak için oldukça yönetilebilir olduğunu düşünüyorum.

Örneğin, Görev Koçu Python / wxPython'da yazılmıştır. Platformlar arası, yerel görünümlü yürütülebilir dosyalar oluşturmak için py2app, py2exe vb. Gibi bir Python2exe derleyicisi kullanırlar.


-1

Windows ekosisteminde geliştirme yapmakla sınırlıysanız ve Visual Studio kullanıyorsanız, Iron Python'u düşünün. Demir Python Python artı .NET nesneleridir.

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.