Personnalisation d'un QSlider
Bonjour,
Je cherche à me paramétrer un slider avec un lcd lié à lui.
J'arrive à faire à peu près ce que je veux mais j'ai deux petits détails qui m'embêtent... et je ne trouve pas les appels de fonctions qui m'intéressent.
exemple ci dessous:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| #import pdb
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
class fenPrincipale(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
fenetre_widget = QWidget()
#Ecrans LCD
self.ecranlcd = QLCDNumber()
self.ecranlcd.setStyleSheet("QLCDNumber{background: transparent}")
self.ecranlcd.setFixedHeight(65)
self.ecranlcd.setFixedWidth(80)
#Sliders
self.slider = QSlider(QtCore.Qt.Horizontal)
self.slider.setStyleSheet("QSlider{background: transparent}")
self.slider.setMinimum(10)
self.slider.setMaximum(50)
self.slider.setValue(10)
self.slider.setTickPosition(QSlider.TicksBelow)
self.slider.setTickInterval(10)
self.slider.setFixedWidth(480)
self.slider.valueChanged.connect(self.ecranlcd.display)
#Layout
layoutvertical = QVBoxLayout()
layoutverticalglobal = QVBoxLayout()
layoutvertical.addWidget(self.ecranlcd)
layoutvertical.addWidget(self.slider)
#Intégration
fenetre_widget.setLayout(layoutvertical)
self.setCentralWidget(fenetre_widget)
def main(args):
appli=QApplication(args)
fenetre=fenPrincipale()
fenetre.show()
r=appli.exec_()
return r
if __name__=="__main__":
main(sys.argv) |
donc c'est une fenetre toute simple qui affiche dans le lcd la valeur du pointeur du slider.
1ère question: Pourquoi est-ce que mon pointeur peut se mettre dans mes intervalles de 10 unités et indiquer à mon lcd des valeurs par pas de 1 (alors que je pensais lui donner des pas de 10 via "self.slider.setTickInterval(10)").
j'aimerais que les seules positions possibles par le pointeur soient celles des indicateurs (tickinterval)
2ième question:est-il possible d'indiquer des valeurs d'intervalles non linéaires? genre au lieu d'avoir un slider 0-5-10-15 avoir quelque chose du genre 1-2,5-3-5,6-8?
3ième question: la couleur de mon pointeur, c'est quoi sa référence (pour la changer)? j'arrive à modifier le fond du slider mais pas le pointeur qui se balade sur le slider.
Merci à vous!