Python pyqt5 de frame ve arka plan resmi̇

Aleykum selam;

Bu dosya QtDesigner’dan Python koduna convert edilmiş. En üst kısımda şöyle yazıyor;

WARNING: Any manual changes made to this file will be lost when pyuic5 is

run again. Do not edit this file unless you know what you are doing.

“Bu dosyada yapılan tüm manuel değişiklikler, pyuic5 tekrar koşturulduğunda yapılan değişiklikler kaybolacak. Ne yaptığınızı bilmiyorsanız, bu dosyayı düzenlemeyin.”

Örneğin pencereye 2 tane buton ekleyip convert ettiniz. Yukarıdaki gibi convert edilen ui dosyası üzerine ekleme yaptınız. Ardından bir tane de label ekleme istediniz. Tekrar QtDesigner uygulamasına dönüp bir label eklediniz ve convert ettiniz. O da ne :open_mouth: Az önce yaptığınız eklemeler yok!

QtDesigner ile yapılan tasarımlar Python kodunda istenilirse doğrudan kullanılabilir ve bu sayede yapılan değişiklikler anlık olarak görüntülenebilir. İkinci bir seçenek ise Python koduna convert etmek (bunu zaten biliyorsunuz).

İlk yöntemi tavsiye ederim. Ben şahsen ikinci yöntemi, tasarım ile işim bittiğinde kullanıyorum.

Gelelim probleme.

Yazdığınız bu QSS kodlarının kimin için geçerli olduğunu belirtmemişsiniz. Dolayısıyla QSS kodları, (eğer stili değiştirilebiliyorsa) tüm objeler için geçerli oluyor.

Şurada pencere olarak QMainWindow seçmişsiniz.

Ui kodlarını da bu pencere üzerine eklemişsiniz, o halde yazdığınız QSS kodlarının QMainWindow için olduğunu belirtin. Resmi sürekli tekrarlamasın diye, background-repeat değerini no-repeat olarak belirtiyorum:

MainWindow.setStyleSheet("QMainWindow{\
	border-image: url(background.jpeg);\
	background-repeat:no-repeat;}")

Bu kodlar tüm QMainWindow nesneleri için geçerli olacak. Örneğin 10 tane label’ımız olsun. Biz QMainWindow yerine QLabel yazarsak uygulama içerisindeki tüm label’lar etkilenecek. Ancak sadece bir label’ı etkilemek istersek, şu formatı kullanmalıyız:

#nesneismi{
    font-color: cyan;
}