6 Nisan 2020 Pazartesi

Design2Py Converter v1.5

Design2Py Converter v1.5



PyQt5 ile arayüz geliştirirken tasarım yapmak için aşağıdaki şemada görüldüğü gibi 2 yöntem mevcuttur:

1) Kod ile tasarım yapmak,
2) Qt designer ile tasarım yapmak


Genellikle zaman kazandırdığı ve kolay olduğu için Qt Designer ile tasarım yapmayı tercih ediyorum. Qt Designer ile tasarım yapıldığında bu tasarımın Python ile kullanılması gerekmektedir. Bu aşamada da 2 farklı yöntem mevcuttur:

1) Pyuic5 ile hazırlanan tasarım Python kodlarına dönüştürülür.
2) loadUi fonksiyonu ile tasarım Python tarafından çağrılır.

loadUi fonksiyonu kullanıldığında arayüz elemanları proje geliştirirken okunamadığı için kod tamamlama özelliği çalışmıyor. Bu özellik çalışmadığında hem arayüz elemanları nesne adlarıyla çağrılırken hem de arayüz elemanlarının sahip olduğu özellikleri (fonksiyonları) kullanırken zorlanıyorsunuz. Bu sebeple hazırlamış olduğum tasarımı Pyuic5 ile Python kodlarına dönüştürmeyi tercih ediyorum. Pyuic5 dönüştürücüsünün nasıl kullanıldığını Ücretsiz PyQt5 Dersleri eğitim serisinde bulabilirsiniz. Biraz zahmetli, hataya açık ve arayüz geliştirirken vakit alan bir işlem olduğu için bu işlemleri daha kolay yapabilmek adına Design2Py Converter programını geliştirdim. YouTube kanalımda PyQt5 derslerini anlatırken sıklıkla kullandım ve mail aracılığı ile isteyenlere ücretsiz olarak verdim. (Bu yazının yazıldığı tarih itibariyle benden 109 kişi programı istedi. Eğer onlarda verdiğim linki başkalarıyla paylaştıysa gerçek kullanıcı sayısı daha fazla olabilir.) Design2Py Converter v1.3 hakkında detaylı bilgilere buradan ulaşabilirsiniz.

Design2Py Converter v1.3'te Karşılaşılan Hatalar

Programı farklı işletim sistemlerinde çok sayıda kişi kullandı ve geri bildirim olarak aşağıdaki hataları bildirdiler:

1) Farklı PyQt5 versiyonlarında Pyuic5'in farklı yapıda olmasından dolayı bir versiyonda başarılı bir şekilde dönüşüm yaparken (PyQt 5.6 - pyuic5.bat) bir başka versiyonda (PyQt 5.11.3 - pyuic5.exe) dönüşüm yapmaması.
2) Pyuic5 veya Pyrcc5 in bulunduğu klasör yolunu bulmak için ortam değişkenlerine erişmeye çalışıyordum ve bu sebeple programın kapanması.

Yeni özelliklerin olduğu ve bahsedilen hataların olmadığı v1.5 hazırlandı.

Design2Py Converter v1.5'te Yenilikler

1. Dil Desteği

Design2Py Converter v1.5 Türkçe ve İngilizce olmak üzere 2 farklı dilde çalışabilmektedir. Dil tercihi menüden değiştirilebilmektedir.



2. Ayarları Kaydetme-Yükleme Özelliği

Kullanım kolaylığı için getirilen bir özelliktir. Programı kapatmadan önce mevcut ayarlarını (dil tercihi, seçilen sekme (sayfa) ve dosya yolları) kayıt ederseniz ve programı daha sonra açtığınızda kaldığınız yerden devam edebilmek için kaydetmiş olduğunuz ayarları yükleyebilirsiniz. Böylelikle her seferinde dosya yollarını ayarlamak zorunda kalmazsınız.



Ayrıca Programın bulunduğu klasör içerisinde formata uygun (program tarafından oluşturulmuş) init.json adında ayarlar dosyası varsa, Design2Py Converter bu dosyada yer alan ayarlara göre açılacaktır. Bu özellik sayesinde kaydetmiş olduğunuz ayarları tekrar yüklemenize ihtiyaç duymayacaksınız.

3. Yardım Menüsünde Yapılan Değişiklikler

Yardım menüsünde 2 ufak değişiklik yapılmıştır. Daha önce YouTube kanalıma yönlendiren link zaten PyQt5 Dersleri ile YouTube kanalına gidilebildiği için Blog sayfama yönlendirilmiştir ve adı Yapay Zeka Labs Blog olarak değiştirilmiştir. İkinci olarak Sürüm Notları seçeneği ile program ve versiyon hakkında detaylı bilgilere ulaşılması adına bu sayfaya yönlendirme sağlanmıştır.



4. Yapay Zeka Labs Sekmesi

Giriş sekmesinde bulunan Yapay Zeka Labs logosuna tıkladığınızda Yapay Zeka Labs YouTube kanalım açılacaktır.


5. ui-2-py Sekmesi

Programın farklı PyQt5 versiyonlarında Pyuic5'in farklı yapıda olmasından dolayı bir versiyonda başarılı bir şekilde dönüşüm yaparken (PyQt 5.6 - pyuic5.bat) bir başka versiyonda (PyQt 5.11.3 - pyuic5.exe) dönüşüm yapmaması en büyük problemdi ve bu problemden kurtulmak için Pyuic5 bileşeninin kullanımını iptal ettim. Dönüşüm işleri programın içinde gerçekleşmektedir. Bu sekmede kullanıcının yapması gereken tek şey dönüştürmek istediği tasarımı Tasarımı (.ui) Seç butonuna basarak seçmesidir. Önceki versiyonda (v1.3) Python kodlarına dönüştürülen tasarım mevcut tasarım ile aynı klasöre ve tasarım adının sonuna _python eklenerek kaydediliyordu. Kullanıcıya kayıt isminde ve klasör yolunda değişiklik yapma hakkı tanıdım. İsterse Kayıt Yoluna Gözat tuşuna basarak değişiklik yapabilir. Son olarak dönüşüm işlemini gerçekleştirmek için kullanıcının Dönüştür ui -> py tuşuna basması gerekiyor.

Buna ek olarak Pyuic5'in hangi klasörde olduğunu bulmak için "Ortam Değişkenlerine" erişmeye çalışmamdan kaynaklanan sorunlardan da kurtulmuş oldum.



6. qrc-2-py Sekmesi

"Ortam Değişkenlerine" erişerek Pyuic5 ve Pyrcc5 in bulunduğu klasör yolunu kullanıcıyı yormadan bulmam güzel bir özellikti ancak farklı kullanıcılarda bahsettiğim gibi sorunlara yol açmıştı. Arayüz açılırken kayıtlı ayarlarla açılması ve mevcut ayarların kayıt edilmesi özelliklerini getirerek yine kullanıcıyı yormadan ihtiyaç duyulan klasör yolları otomatik bulunacaktır. Kullanıcının klasör yollarını değiştirmediği sürece sadece bir defa bilgisayarında Pyrcc5'in bulunduğu klasör yolunu bulması gerekecektir. Pyrcc5'e Gözat tuşuna basılarak Pyrcc5 seçildikten sonra Dosyayı (.qrc) Seç tuşuna basılarak Python kodlarına dönüştürülmek istenen Qt Kaynak Dosyası seçilmelidir. Son olarak Python kodlarını elde etmek için Dönüştür qrc->py tuşuna basılmalıdır.



Burada Python kodlarına dönüştürülen Qt kaynak dosyası mevcut Qt kaynak dosyası ile aynı klasöre aynı ismin sonuna _rc eklenerek kaydedilmektedir.

Design2Py Converter v1.5 İndirme Bağlantıları

İşletim Sistemi Design2Py Converter Yayınlanma Tarihi
Windows 7-10 v1.5.0 08.04.2020 - 19:34
Ubuntu 16.04 v1.5.0 08.04.2020 - 19:44
Ubuntu 18.04 v1.5.0 09.04.2020 - 00:50
MacOS High Sierra 10.13 v1.5.0 19.05.2020 - 13:40
Raspbian - -
Ubuntu Mate - -

Test Edilen PyQt5 Versiyonları

Aşağıdaki tabloda Design2Py Converter programının test edildiği ve herhangi bir sorunla karşılaşılmayan PyQt5 versiyonları gösterilmektedir. Benim tek başıma her işletim sistemi için ve her PyQt5 versiyonu için test etmek için vaktim olmadığından sizler de burada yer almayan PyQt5 versiyonları kullanıyorsanız, programın o versiyonlar için de durumunu yorum olarak bildirirseniz tabloyu o bilgiler ışığında güncelleyeceğim.

İşletim Sistemi Test Edilen PyQt5 Versiyonları
Windows 7-10 5.6.0 - 5.11.3 - 5.13.2
Ubuntu 16.04 5.11.3
Ubuntu 18.04 5.13.1
MacOS High Sierra 10.13 5.11.3
Raspbian -
Ubuntu Mate -


25 yorum:

  1. mac için paket yapabilir misin?

    YanıtlaSil
    Yanıtlar
    1. İlginiz için teşekkürler. Bu sayfayı bu tarz talepleri ve eksiklikleri toplamak için kurmuştum. Böyle bir talebin gelmesi güzel oldu. Mac bilgisayarım yok ama bildiğim kadarıyla Windows üzerine kurulabiliyor. En kısa sürede Design2Py Converter programını Mac için de çalışabilir duruma getireyim.

      Sil
    2. Design2PyConverter programını artık Mac işletim sisteminde kullanabilirsiniz.

      Sil
  2. Ders anlatımın çok iyi, ders konuların öğrenmek istediğimle aynı, daha ilersi için ayrıca planladığın dersler var mı?

    YanıtlaSil
    Yanıtlar
    1. Güzel yorumlarınız için teşekkürler. Plan çok yapacak vakit yok. Öyle bir sıkıntımız var. Bir de bir şey yaptığımda en iyisi olsun istiyorum o da süreci uzatıyor. Fırsat bulursam kanal adına yakışır dersler vermeyi planlıyorum.

      Sil
  3. Programı indirdim ve sorunsuz çalıştı.Derslerinizde açıklayıcı ve öğretici.Elinize sağlık, teşekkür ediyorum.

    YanıtlaSil
  4. Emeğiniz için teşekkürler.

    YanıtlaSil
  5. selam. hiç proğramcılık bilmiyorum. yıllar önce gwbasic öğrenmiştim. yıllar sonra tekrar öğrenmeye niyet ettim bakalım olacak mı? nieyim bunu proğram halinde yapmak https://www.youtube.com/watch?v=BRqwLEt9LCw&t=305s
    gelelim sorunuma
    mint de açamadım.
    Traceback (most recent call last):
    File "Design2PyConverter.py", line 1, in
    ImportError: /lib/x86_64-linux-gnu/libGL.so.1: undefined symbol: _glapi_tls_Current
    [1879] Failed to execute script Design2PyConverter

    YanıtlaSil
    Yanıtlar
    1. Programı mint te derlemediğim için çalışmıyor. Fırsat mint te derleyip indirme linkini bu sayfaya koyarım.

      Sil
    2. Allah razı olsun 2 saatimi kurtardı

      Sil
  6. Merhaba. Çalışma alanımla pek ilgisi olmamasına rağmen pandemi sürecinde boş zamanlarımı değerlendirmek amacıyla öğrenmenin yaşı yoktur diyerek sıfırdan Python öğrenmeye başladım :) Yavaş ve emin adımlarla arayüz geliştirmeye kadar geldim. PyQt5 ile ilgili kaynak ararken youtube kanalınızla tanıştım. Benim gibi yeni başlayanlar için çok başarılı, anlaşılır ve eğitici. Emeğinize sağlık, paylaşımlarınız için çok teşekkür ederim.

    YanıtlaSil
    Yanıtlar
    1. Yorumunuz için çok teşekkürler, iyi çalışmalar.

      Sil
  7. Hocam uygulamaya dil ekleme işlemini nasıl yaptığınıza dair yazı ya da video paylaşır mısınız?

    YanıtlaSil
    Yanıtlar
    1. Yakın zamanda video ya da yazı paylaşacak vakit bulacağımı düşünmüyorum.

      Sil
  8. bilgisayardan bir dosya seçip programda dosyanın ismini değiştirtip istediğim konuma kaydeden program yapmaya çalışıyorum. göz at butonu ve kaydet veya dönüştür butonunu nasıl yapabileceğimi bilmiyorum. yazdığınız bu kodu incelemek istiyorum göz at butonları ve dönüştür butonununun çalışma prensibini öğrenmek için. kodlarınızı benimle paylaşabilir misiniz ?

    YanıtlaSil
    Yanıtlar
    1. kodları paylaşmıyorum. QFileDialog sınıfı ile ilgili internetten örnek kodlar, projeler bulabilirsiniz.

      Sil
  9. programı arm64 içinde uygun hale getirebilir misin?

    YanıtlaSil
  10. Merhaba. Design2Py Converter v1.5 > ui-2-py Sekmesinde "Kayıt Yoluna Gözat" tuşuna basarak kayıt isminde ve klasör yolunda değişiklik yapdığım zaman yeni adres buton karşısındakı adres çubuğuna yansımıyor.
    Bir de, hocam adres çubuğu aktiv hale getirilirse manuel olarak da adres yazmak kolaylaşır diye düşünüyorum. Teşekkür ederim, emeğinize sağlık.
    İşletim sistemimI windows 10

    YanıtlaSil
    Yanıtlar
    1. Dosya yolunda problem olabilir. Karşılaştığınız sorunu video çekerek yapayzekalabs@gmail.com adresine mail ile gönderebilir misiniz ?

      Sil
  11. Merhaba hocam.
    Win10 için indirdim fakat rar dosyası hasarlı.
    Sorunsuz çalışan bir sürümünü tekrar upload eder misiniz?
    aydkrky@gmail.com mail adresim.

    YanıtlaSil
    Yanıtlar
    1. Şimdi denedim hiçbir hasarla karşılaşmadım. 7z programıyla deneyin isterseniz

      Sil
    2. İndirirken problem yaşamış olabilirsiniz bugüne kadar böyle bir problemle karşılaşan olmadı.

      Sil
  12. ubuntu 20.04 için indirsem sıkıntı olur mu acaba

    YanıtlaSil