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
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.
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ı.
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.
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 | - |
mac için paket yapabilir misin?
YanıtlaSilİ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.
SilDesign2PyConverter programını artık Mac işletim sisteminde kullanabilirsiniz.
SilDers anlatımın çok iyi, ders konuların öğrenmek istediğimle aynı, daha ilersi için ayrıca planladığın dersler var mı?
YanıtlaSilGü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.
SilProgramı indirdim ve sorunsuz çalıştı.Derslerinizde açıklayıcı ve öğretici.Elinize sağlık, teşekkür ediyorum.
YanıtlaSilİlginiz ve yorumunuz için teşekkürler.
SilEmeğiniz için teşekkürler.
YanıtlaSilyorumunuz için teşekkürler.
Silselam. 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
YanıtlaSilgelelim 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
Programı mint te derlemediğim için çalışmıyor. Fırsat mint te derleyip indirme linkini bu sayfaya koyarım.
SilAllah razı olsun 2 saatimi kurtardı
SilMerhaba. Ç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ıtlaSilYorumunuz için çok teşekkürler, iyi çalışmalar.
SilHocam uygulamaya dil ekleme işlemini nasıl yaptığınıza dair yazı ya da video paylaşır mısınız?
YanıtlaSilYakın zamanda video ya da yazı paylaşacak vakit bulacağımı düşünmüyorum.
Silbilgisayardan 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ıtlaSilkodları paylaşmıyorum. QFileDialog sınıfı ile ilgili internetten örnek kodlar, projeler bulabilirsiniz.
Silprogramı arm64 içinde uygun hale getirebilir misin?
YanıtlaSilMerhaba. 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.
YanıtlaSilBir 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
Dosya yolunda problem olabilir. Karşılaştığınız sorunu video çekerek yapayzekalabs@gmail.com adresine mail ile gönderebilir misiniz ?
SilMerhaba hocam.
YanıtlaSilWin10 için indirdim fakat rar dosyası hasarlı.
Sorunsuz çalışan bir sürümünü tekrar upload eder misiniz?
aydkrky@gmail.com mail adresim.
Şimdi denedim hiçbir hasarla karşılaşmadım. 7z programıyla deneyin isterseniz
Silİndirirken problem yaşamış olabilirsiniz bugüne kadar böyle bir problemle karşılaşan olmadı.
Silubuntu 20.04 için indirsem sıkıntı olur mu acaba
YanıtlaSil