Yok ben anlamamışım. Sorabilirdim, büyütmekten kastınız nedir uzatmak mı yoksa kalınlığını artırmak mı diye. Yada resimden çıkarabilirdim belki ama emin olamadım açıkçası sormadım da nasıl olsa düzeltilir yanlış anlaşılan bir kısım varsa.
Alttaki barın adı groove, yani oluk diye Türkçeye çevirebiliriz.
Bu custom bir özellik olarak değiştirildiğinde sistem renklerini kullanmıyor. Doğal olarak arka fon sistem renklerini siz ayarlamak zorunda kalacaksınız.
Burada mavi sürgüye handle/ yani kulp deniliyor muş. Arka plan rengini,
background: palette(highlight);
İle istediğimiz maviye yaklaştırabiliyoruz.
İlk oluk/groove oldukça ince içindeki renk görünmüyor.
Tahmini bir renk kullanılarak geçici olarak verdik.
Burada;
.setFixedSize(QSize(400,50))
Değerleri ile oynayarak biraz handle/kulbu büyütme küçültme şansınız da var.
İlave bir iki özellik olarak, sürüklendiği noktada rengi değiştiren bir kısım da var. Bunları çıkarabilir yada rengini de değiştirebilirsiniz.
from PyQt5.QtCore import Qt, QSize
from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout, QSlider
QSS = """
QSlider::groove:horizontal {
border: 1px solid;
height: 30px;
/*margin: 30px;*/
background-color: rgb(238, 238, 238);
/*position: absolute;*/
left: 20px; right: 20px;
}
QSlider::handle:horizontal {
background: palette(highlight);
height: 40px;
width: 10px;
margin: -15px -20px;
}
QSlider::handle:horizontal:pressed {
background-color: black;
}
QSlider::add-page:horizontal {
background: rgb(183, 183, 183);
}
QSlider::sub-page:horizontal {
background: rgb(80, 80, 232);
}
"""
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('slider sample')
self.slider_1 = QSlider()
self.slider_1.setFixedSize(QSize(400,50))
self.slider_1.setOrientation(Qt.Orientation.Horizontal)
self.slider_2 = QSlider()
self.slider_2.setFixedSize(QSize(400,200))
self.slider_2.setOrientation(Qt.Orientation.Horizontal)
self.slider_2.setStyleSheet(QSS)
layout = QVBoxLayout()
layout.addWidget(self.slider_1)
layout.addWidget(self.slider_2)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
ex =Window()
ex.show()
app.exec()
Kodun tamamı yukarıda. Özetle custom bir iş yaptığımız için tema renklerini kendimiz belirlememiz gerekiyor, daha uzunca bir yolu da var ama girmek istemezsiniz. Pyqt içerisinde QSlider’ın groove varsayılan değerini manipüle etmek ki bu durumda bütün programlarınızda artık bu yeni değeri kullanır, varsayılan ayarlarını değiştirmemek taraftarıyım.
QSlider::add-page:horizontal {
background: rgb(183, 183, 183);
}
Bu kısımda ayarlayacağınız renk oluk ileri yöndeki gri rengi vermekte.
QSlider::sub-page:horizontal {
background: rgb(80, 80, 232);
}
Yukarıdaki kısım ise handle/kulp kaydırıldığında geride kalan kısmın rengini ayarlamakta. Farklı bir mavi olarak bıraktım. Siz isterseniz. Her iki renk değerini aynı yapabilirsiniz. Bu şekilde biraz progress bar gibi de çalışabildiği görünmesi açısından bıraktım.

Kodu şu kaynaktan biraz değiştirerek düzenledim:
【PyQt6】【サンプル】QSlider(ハンドルが丸いスライダー) - パソコン関連もろもろ (hatenablog.com)
Orijinal koda da bakmak isterseniz.
(ハンドルが丸いスライダー)
Yuvarlak saplı sürgü demiş benim japon kardeşlerim.