Python'da nasıl hızlı bir şekilde kullanıcı arayüzü oluşturacağınızı öğrenin, büyük tanrı sizi uçmaya götürecek

Tam metin 3363 Kelimeler, tahmini öğrenme süresi 10 dakika

Kaynak: Pexels

Python'a girmek deniz kadar derin olduğunda, Python'a başlamak kolaydır, ancak onu iyi kullanmak o kadar kolay değildir.

Kullanımı kolay ve zengin depolar Python'un en büyük avantajlarıdır. Sadece birkaç satır kodla hiçbir şey imkansız değildir. Python betiği kişisel kullanım için olduğu sürece veya hedef kullanıcı yeterli teknik yeteneklere sahip olduğu sürece, kullanıcı arayüzünü (UI) dikkate almanıza bile gerek yoktur.

Ancak bazen hedef kitle yeterince profesyonel değildir, sizin python betiğinizi severler, ancak yalnızca kod satırlarına bakmak zorunda değillerse. Bu durumda, komut satırı betikleri sağlamak faydasızdır, kullanıcı arayüzünü onlar için hazırlamak daha iyidir. Tipik masaüstü istemcileri ve web tabanlı kullanıcı arayüzleri hakkında tartışıyorsanız, şaşırmam ama bu makalede amaç sadece Python'u kullanmaktır.

UI için kullanılabilen Python kitaplıkları

Esasen, Python'un üç büyük UI kitaplığı vardır: Tkinter, wxPython ve PyQT. Bu üç kütüphaneye baktığımda, onları kullanırken Python hakkında sevdiğim her şeyi bulamıyorum. Python kütüphanesinin süper teknolojileri ayıklamada çok iyi olduğu söylenebilir, ancak nesne yönelimli programlama kullanmam gerekirse Java veya .Net'i tercih edebilirim.

Bununla birlikte, daha sevindirici olan, artık her türlü tercihi karşılayan dördüncü bir seçeneğin olmasıdır. İncelediğim ve sonunda oluşturmayı seçtiğim Python UIs kitaplığı PySimpleGUI'ye dayanıyor. İlginç olan, bu kütüphanenin ilk üç kütüphanenin gücünü belirlemesi, ancak süper teknolojiyi özetlemesi.

Artık bu kitaplığı zahmetsizce derinlemesine inceleyebilir ve aynı zamanda sorunu gerçekten çözebilirsiniz.

Kaynak: Pexels

İki dosyanın aynı olup olmadığını kontrol edin

Önceki makalem olan "Python'da Verileri Hızlıca Karşılaştırmak için Üç Yöntem" konusuna bakın, ilk bölümün içeriğine güvenin, verilerin bütünlüğünü kontrol edin ve kullanıcı arayüzünü oluşturmaya çalışın.

Esasen, bu iki dosyayı yüklemenin ve ardından dosya karşılaştırması için kullanılacak şifreleme yöntemini seçmenin bir yoluna ihtiyacımız var.

Kullanıcı Arayüzünü Yazmak

Kullanıcı arayüzünü oluşturmak için aşağıdaki kodu kullanabilirsiniz:

  • sg olarak importPySimpleGUI
  • layout =
  • window = sg.Window ('Dosya Karşılaştır', düzen)
  • True iken: # The Event Loop
  • olay, değerler = window.read ()
  • # print (olay, değerler) #debug
  • (Yok, 'Çıkış', 'İptal') içindeki olay:
  • kırmak
  • Sonuç:

    Yukarıdaki kod tarafından oluşturulan basit Python kullanıcı arayüzü

    Mantık ekle

    Kullanıcı arayüzüne dayanarak, kalan kodu nasıl ekleyeceğinizi kolayca görebilirsiniz. Yalnızca kullanıcının ne girdiğini izlemeniz ve ardından ilgili işlemleri yapmanız gerekir. Aşağıdaki koda güvenmek kolaylıkla yapılabilir.

  • sg olarak importPySimpleGUI
  • yeniden ithal
  • hashlibdef hash dosyasını (fname, algo) içe aktar:
  • algo == 'MD5' ise:
  • hash = hashlib.md5 ()
  • elif algo == 'SHA1':
  • hash = hashlib.sha1 ()
  • elif algo == 'SHA256':
  • hash = hashlib.sha256 ()
  • tanıtıcı olarak open (fname) ile: # dosyayı hafızayla ilgili hususlar için bir seferde bir satır açmak
  • tutamaçtaki satır için:
  • hash.update (line.encode (kodlama = 'utf-8'))
  • return (hash.hexdigest ()) layout = window = sg.Window ('Dosya Karşılaştır', düzen) True iken: # Olay Döngüsü
  • olay, değerler = window.read ()
  • # print (olay, değerler) #debug
  • (Yok, 'Çıkış', 'İptal') içindeki olay:
  • kırmak
  • if event == 'Gönder':
  • file1 = file2 = isitago = Yok
  • # print (değerler, değerler)
  • değerler ve değerler ise:
  • file1 = re.findall ('. +: \ /.+ \. +.', değerler)
  • file2 = re.findall ('. +: \ /.+ \. +.', değerler)
  • isitago = 1
  • file1 değilse ve file1 notNone değilse:
  • print ('Hata: Dosya 1 yolu geçerli değil.')
  • isitago = 0
  • elif not file2 ve file2 isnot None:
  • print ('Hata: Dosya 2 yolu geçerli değil.')
  • isitago = 0
  • elif değerleri True değil ve değerler True değil ve değerler True değil:
  • print ('Hata: En az bir Şifreleme Algoritması türü seçin')
  • elif isitago == 1:
  • print ('Bilgi: Dosya yolu doğru tanımlanmıştır.')
  • algos = #algos tocompare
  • değerler == Doğru ise: algos.append ('MD5')
  • değerler == Doğru ise: algos.append ('SHA1')
  • değerler == Doğru ise: algos.append ('SHA256')
  • filepaths = # dosyalar
  • filepaths.append (değerler)
  • filepaths.append (değerler)
  • print ('Bilgi: FileComparison using:', algos)
  • algos'ta algo için:
  • baskı (algo, ':')
  • baskı (dosya yolları, ':', karma (dosya yolları, algo))
  • baskı (dosya yolları, ':', karma (dosya yolları, algo))
  • ifhash (dosya yolları, algo) == karma (dosya yolları, algo):
  • print ('Filesmatch for', algo)
  • Başka:
  • print ('Dosyalar EŞLEŞMEZ', algo)
  • Başka:
  • print ('Lütfen 2 dosya seçin.') window.close ()
  • Yukarıdaki kodu çalıştırmanın çıktısı:

    Sonuç

    En iyi görünen kullanıcı arayüzü olmasa da, bu kitaplık basit Python kullanıcı arayüzlerini daha hızlı başlatmanıza ve ihtiyaç duyan herkesle paylaşmanıza olanak tanır.

    Daha da önemlisi, ihtiyaç duyduğu kod çok basit ve çok okunabilir.

    Kullanıcı arabirimini tamamlamak için kod çalıştırma ihtiyacı gibi sorunlar devam etse de, bu da paylaşımı biraz zorlaştırabilir, Python komut dosyalarını insanların çift tıklayabileceği .exe biçimine dönüştürebilen PyInstaller vb. Kullanmayı düşünebilirsiniz.

    Daha fazlasını söylemenin faydası yok, gel ve dene ~

    Yorum Beğen Takip Et

    Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

    Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

    Her şeyi bırakın ve Açısal 3 nedeni seçin
    önceki
    "Kel" atış mı? Programcıların çok verimsiz olmasına neden olan 7 alışkanlık
    Sonraki
    Richard Feynman, güçlü yapay zeka üzerine - makineler insanlar gibi düşünebilir mi?
    Bugünün Çekirdek Sesi | Bill Gates'in Yeni Yıl Kararı: Ben ve diğer milyarderler daha fazla vergi öder
    Sektörden sorular, JuliaSet Python'un yerini alacak mı?
    Yapay zekanın ölümü - neden yapay zeka projeleri defalarca yenilgiye uğradı?
    Android geliştirme mühendisinin anlatımı: 2 yıllık geliştirme, 7 deneyimi özetledim
    Algoritmaların adilliğini ölçmek neden her zaman zordur?
    Bugün Core Voice | Python 2.7 desteği resmi olarak sona erdiriyor: Python 3 burada
    Ağlamak kolay! Geliştiriciler için sahip olması gereken 8 web uygulaması
    Teknik borcu boşaltın! Veri bilimcilerin kısa Python koduna ihtiyacı var
    Yetersiz zaman? Pandaların daha hızlı uygulanmasını sağlamak için bu kelimeyi ekleyin
    Tembel hileler: Pandas kodu yazmaktan nasıl kaçınacağınızı öğretin
    Core Voice Today | Yeni Yıl! CCTV 2019 bilim ve teknoloji haberlerini duyurdu, bunu biliyor musunuz?
    To Top