self.setStyleSheet(“background-color: yellow;”)
bu kodu kullanırsam sarı olan yeri boyuyor ben o kenarlık mı ne oluyorsa oranın da boyanmasını istiyorum onu nasıl yaparım
self.setStyleSheet(“background-color: yellow;”)
bu kodu kullanırsam sarı olan yeri boyuyor ben o kenarlık mı ne oluyorsa oranın da boyanmasını istiyorum onu nasıl yaparım
Titlebar
deniyor. How to change window titlebar color PyQt5
gibi aramalar yapabilirsiniz.
Bunu istemezsin.
Hatta temel işletim sistemi bilgisi olan hiç kimse bunu istemez.
O rengin kontrolünü temel işletim sistemi kontrol eder. Tema gibi. Değiştirirsen tüm pencerelerinin rengini değiştirmiş olursun.
Yani program başladığında bu sarı renge dönüştürürsen, kapatırken de tekrar eski rengine çevirmezsen diğer pencerelerinin hepsinin tepesinde o sarı rengi görürsün.
Genelde bu şekilde de çözülmez.
Basit bir çözümü var.
Ama bu çözümü vermeden önce insanın gerçekten emin olmak istiyor acaba gerçekten bunu istiyor olabilir mi diye.
EDIT 1:
Resmen dejavu yaşadım.
Pencere başlığından bahsediyorsun sanırım. Pencere başlık rengi bilgisayarındaki temadan alınır. Yani onu doğrudan değiştirmenin bir yolu yok diye biliyorum. Bu dolaylı olarak yapılabilir. Şöyle ki:
Teşekkür ederim o bölgenin adını bilmediğim için internetten bakamdaydım
Şey hangisine çözüm basmalıyım 3 üne basamıyormuşum ama 3 ü de çözüm
Mesele çözümün hangi kullanıcının verdiği öneri olduğu değil.
Mesele öğrenebilmiş olman.
Bence, yorumlardan ne anladın nasıl çözdün. Sonuçları nasıl oldu güzelce yaz kendi cevabını çözüm olarak işaretle.
Arkadaşlarımın tavsiyesi üzerine ilk olarak pencerenin kenarlıklarını sildim bunun için şu kodu kullandım
self.setWindowFlag(Qt.FramelessWindowHint)
Sonra 2 etiket 3 buton oluşturdum
self.ekranicon = QLabel(self)
self.baslik = QLabel(self)
self.cikis = QPushButton(self)
self.kapla = QPushButton(self)
self.kucult = QPushButton(self)
Daha sonra bunların konumlarını ve iconlarını ayarladım
self.ekranicon.setGeometry(QRect(10, 15, 41, 41))
self.ekranicon.setStyleSheet(“border-image : url(icon.png);”)
gibi.Başlığı oluşturdum
self.baslik.setText(“Hesap makinesi”)
self.baslik.setFont(QFont(‘Arial’, 20))
Sonra butonların işlevini ayarladım
self.cikis.clicked.connect(lambda :exit())
self.kucult.clicked.connect(lambda :self.showMinimized())
self.kapla.clicked.connect(lambda : self.showNormal() if self.isMaximized() else self.showMaximized())
ilki tıklandığında çık anlamına geliyor
2.si tıklandığında simge durumuna at
Hareket etmeme sorununu ise internetten şöyle bir yol bularak çözdüm
def mousePressEvent(self,event) :
self.dokunulanyer=event.globalPos()
eğer adam pencereye dokunursa dokunduğu konumu değişkene atıyor
def mouseMoveEvent(self,event) :
hareket = QPoint(event.globalPos() - self.dokunulanyer)
self.move(self.x() + hareket.x(), hareket.y() + hareket.y())
self.dokunulanyer = event.globalPos()
Mouse yi sürüklediği konumdan mausun ilk dokunduğu yeri çıkarıyor sonra değişkene atıyor örneğin;
Dokunduğumuz konum 10,10 olsun
Sonra mauseyi 10,15 e sürükledik
10,15 ten 10,10 u çıkarıyor hareketi 0,5 buluyor
Daha sonra şuanki konumunun x ine 0 ekliyor y sine 5 ekliyor
En sonda sürüklediğimiz yeri değişkene atıyoruz ki 10,15 - 10,15 = 0,0 olsun hareket ettirmesin(bu kısımdan tam emin değilim)
Olmuş mu?
Bide setGeometry ,move dışında bir nesneye nasıl konum atarım. setGemotry move de koordinat olarak verdiğim için benim pcmde güzel gözüken bir şey başkasının büyük veya küçük monitöründe kötü gözükebilir veya tam ekranken güzel gözüken bir şey tam ekran dışında kötü gözükebilir
Böyle de bir yöntem var.
Sizin kodu denemedim. Gerekirse bir tane kod yazabiliriz.
Bu konuda da alternatif çok.
Ekran çözünürlük bilgisi alınarak uygun başlık boyutu ayarlanabilir. Scale, strech gibi özellikler varsa bunlar kullanılabilir. Tamamen size kalmış.