MenuBar ve içindeki sınıflar

Projeme bir menubar ekledim ve buna style eklemek istiyorum.

menubar.setStyleSheet("background-color: #303030; color: red;")

bunun için yukarıdaki kod satırını kullanmam yeterli oldu. Ancak şöyle bir problem var. Menubarın içindeki nesnelerin de içindeki objelere hover olayı uygulanmıyor (Bunun sebebi setStyleSheet kullanarak diğer default css kodlarına müdahale ediyor olmam olsa gerek). Dolayısıyla o hover olayını da css ile manuel olarak kendim kurmam gerekiyor. Ancak bunu yapabilmem için objelerin isimlerini bilmem lazım ve bunu bilmiyorum. Ne kadar araştırsam da hiçbir şekilde bulamadım.
Ekran görüntüsü 2020-11-20 173708

Dropdown’u olan objelerin de hover’ını değiştireceğim. Dolayısıyla bana bu ss’te gördüğünüz “Styles”, “Mods” ve içlerinde yazan “yellow”, “red” … Objelerinin hepsinin isimleri gerekiyor.
İsimden kastım şu :

QLineEdit {
    font-size: 20px;
}
QLineEdit:hover {
   font-size: 30px;
}

Mesela Designer’da qss uygularken QLineEdit isminden yararlanarak QLineEdit objelerine görünüm veriyoruz.
Dolayısıyla benim de bu menubar objelerine görünüm verebilmem için bütün ögelerinin isimlerini bilmem gerekiyor. Bu isimlere nasıl ulaşabilirim ? Ya da siz söyler misiniz ?

Not :

menubar.setStyleSheet("background-color: #303030; color: red;")

bana bu işlemde isme ihtiyaç duymadığımı söyleyebilirsiniz belki. Doğrudur ancak hover olayı uygularken isme ihtiyacım olacak.
Tıpkı buradaki gibi

self.five.setStyleSheet("QPushButton {\n"
"    background-color: #303030;\n"
"    color: white;\n"
"    font-size:50px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"    background-color: #4d4d4d;\n"
"}")

QtDesigner kullanıyorsanız sağda, object inspector bölümünde yazar. Menüleri siz kendiniz oluşturduysanız zaten bilmeniz gerekir (değişken ismi).

Bir nesnenin stilini değiştirmek istiyorsanız, şuna benzer kullanımlardan kaçının:

Bu, ilgili penceredeki tüm QLineEdit nesneleri için geçerli olur.

Belirli nesneler ile ilgilenecekseniz object name'leri (değişken isimlerini) kullanmalı ve şu formata göre yazmalısınız:

SinifIsmi#NesneIsmi{
    qss kodlari...
}

Nesne üzerine gelindiğinde, tıklandığında, basılı tutulduğunda gibi olayları ve daha fazlasını kontrol edebilmek için resmi belgeye göz atın.

1 Beğeni

Evet orada yazıyor ancak menubar’da olay daha farklı. Menubar designer üzerinden de oluşturulabiliyor ama ben kendim yazmayı tercih ettim. Designer’da menubar’a bir ekleme yapılamıyor çünkü, yanlış bilmiyorsam. Eklemeden kastım, dropdown’a sahip 2 obje.

buradaki styles ve mods gibi.

Eğer designer üzerinden menubar oluşturuluyorsa sadece menü çubuğu oluşturulabiliyor. İçeriği düzenlenemiyor bu menubarın. O yüzden kendim yazmak istedim. Hepsi göz önünde dursun diye.
Designer’da böyle bir ekleme yapılamadığı için de object inspector bölümünde görünmüyor.
Object İnspector’da sadece window’da olan ögeler görüntüleniyor ve menubarın içeriği düzenlenmediği için, olmayan bir içeriğin objelerini de bana gösteremiyor.

farkında olarak böyle kullanıyorum. Problem yok :+1:

QtDesigner’da bu söylediklerinizi yapabilirsiniz.

Menü çubuğunda Type Here veya yeni sürüm kullanıyorsanız Buraya Yazın seçenekleri gözükür. Çift tıkladığınızda bir line edit oluşur ve içerisine menü ismini yazarsınız. Oluşturduğunuz menüye tekrar çift tıklayın, dropdown menü açılır ve aynı şekilde dropdown menüler de oluşturabilirsiniz.

1 Beğeni

Groupbox oluşturduğunuzda sol üstte bir başlık olur ya.
Ben de en baştan beri “type here” kısmını groupbox’taki gibi bir başlıktan ibaret sanıyordum :rofl:
Ama öyle değilmiş. Teşekkürler :rofl:

2 Beğeni

Ben de 1 saat Type here’nin tex’tini değiştirmeye çalışmıştım :rofl:

2 Beğeni