Pycharm PyQt5 pencere açılmıyor

Benim anlatmak istediğim daha çok önüne çıkan problemlerin türü ve sebebi değil. Netice de uzmanlaşmadan çoğu şeyi anlamak zor olacaktır. Ne var ki bu sorunları çözmek için araştırma yaptığında nette de bulamıyorsun. Python’da birçok başarılı uygulama da yazdım. Burada pes etme yok. İhtiyaçlara cevap verememe var. Bu dili geliştiren onca insan içinde bu sorunları yaşayıp py dosyasını exe’ye çeviren bir uygulama yazmanın ya da diğer konularda pratik yaklaşım içinde olamamanın mantığı yok bence. Bu kadar iyi bir dilin aplikasyon ve arayüz noktası bu denli başıboş bırakılmamalı. Misal bir tkinter arayüzüne birden fazla resim koymak ve bunu da söylenen prosedüre göre paketlemek bu kadar zor olmamalı. Neticede arayüz yazıyoruz aya araç göndermiyoruz

1 Beğeni

Evet burada haklısınız.
Mesela şimdi aklıma geldi.

Bir hesap makinesi arayüzüm var.

şunun arkaplanına güzel bir image koymak istedim ancak o bile ne kadar dolandırdı beni anlatamam.
Hala da ilgilenemedim, bir şey bulabilecek miyim onu da bilmiyorum.

Bu kadar basit bir şeyin bu kadar uzun yoldan dolandırmaması lazım.
Bu tip farklı farklı basit durumlar da var. Ancak uygulatılması çok iş.
Bunların bu kadar sade ve işlevli bir dilde olmaması lazım bence de.

Hak veriyorum size evet.

Eğer bu kod Spyder’da başarıyla çalışıyorsa Spyder’da bir problem vardır.

1 Beğeni

Ben onu da konu olarak buraya yazdım. Sağolsun bir arkadaş birkaç satır attı.

img = tk.PhotoImage(file="img.png")
width, height = img.width(), img.height()
canvas = tk.Canvas(root, width=width, height=height)
canvas.pack()
canvas.create_image((0, 0), image=img, anchor="nw")

kendime uyarlayıp uyarlayıp onu kullanıyom. :laughing: Ama kodları kendin yazar mısın desen yok yani beni de dolandırır.

1 Beğeni

Bu kodları ben yazmadım. Udemy’de bir arayüz kursunda elemanın teki yazdı; ben de aynı onun gibi spyder a aynı şekilde yazdım.

Anladım, ancak o kod zaten hatalı ve çalışmaması lazım, bu yüzden Pycharm’da çalışmaması da normal. Eğer aynı kod Spyder’da çalışıyorsa Spyder’da bir bug/hata olması lazım.

PyQt projelerinizi konsoldan (IDE’dekini kastetmiyorum, mesela CMD) çalıştırırsanız hata mesajlarını görebilirsiniz.

Process finished with exit code -1073740791 (0xC0000409)”
Bu tarz hata kodu benim projede de oluştu ve veri tabanına kayıt yapamamak gibi bir durumla karşılaştım. Sonunda kodun içindeki tarih formatı yüzünden kaydın gerçekleşmediği sonucuna ulaştım.Farklı bir format uyguladığımda kod çalıştı. Kodda bir yerde mutlaka bir hata var. Tarihle ilgili bir yer varsa önce orayı kurcalayın.

Burada size bir sorum olacak neden QT Desiner ile yapmaya çalışmadınız. Bu işi yani kod ile ara yüz tasarlama gerçekten benim gibi her obje formda birbirinin simetrisi olsun diye uğraşan birini kodlamadan soğutuyor. Denedim vazgeçtim ve QT Designer ile istediğim her şeyi yapabilirim çok daha kolay klavyeyi kırmadan arta kalan zamanımda da kodlama öğrenmeye farklı konularda devam ederim. Şu buton ekranın şurasında çıksın diye bu kadar uğraşırsam benim hiç bir ara yüzüm bitmez.

Abi haklısında arkadaş öyle seviyor belki
Qt Designer candır

Eleştirmedim sadece sordum zaten arada fark var Şu Formdan tarihi QDateEdit formatı ile VT nına kaydetme olayını çözersem candır diyebileceğim ama henüz çözemedim.

Designer ile yaptım zaten.

Menubar gibi şeyleri kodla yapmayı tercih ederim.
Bunun dışında designer ile yapıyorum her şeyi.

QT Designer da QDateEdit componentini kullandınızmı hiç. Tarih için.

Sadece1 kere calendar widget’ı denedim.

Ve hayır.

Sakın kullanmayın zaten :slight_smile: ben bir kullandım işin içinden nasıl çıkacağım bilemiyorum.

1 Beğeni

burada yapmanız gereken tek şey yaptığınız class ise sona

self.show()

koymanız gerekir.
Eğer def ile çalışıyorsanız yani fonksiyon tanımlarken pyQt5 kullanıyorsanız, fonksiyonunuzun adıyla show fonksiyonu kullanın. Örn.

def deneme_pencere

derseniz yapmanız gereken şey fonksiyonun sonuna aşağıdaki kodu koymaktır. (başında gerekli şeylerin içe aktarıldığı varsayılmaktadır…)

def deneme_pencere:

deneme_pencere.show()
a= deneme_pencere
app=QApplication(sys.argv)
sys.exit(app.exec())