Bonjour, j'ai un problème avec QFormLayout :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 self.dict_caisse = {} self.list_caisse = ("pièce de 1c", "pièce de 2c", "pièce de 5c", "pièce de 10c", "pièce de 20c", "pièce de 50c", "pièce de 1", "pièce de 2", "billet de 5", "billet de 10", "billet de 20", "billet de 50", "billet de 100", "billet de 200", "billet de 500", "CB", "chèque") for i in self.list_caisse: self.dict_caisse[i] = QtWidgets.QLineEdit() self.caisse_layout.addRow(i, self.dict_caisse[i])
et j'ai 2 problèmes :
- les Qlabel n'ont pas la même taille, donc pas la même bordure
- ils ne sont pas centrés
est-ce qu'il vaudrait mieux utiliser une QGridLayout à la place d'un QFormLayout(qui est quand même fait pour ça .. ) ?
EDIT : j'ai modifié mon code pour utilsier un QGridLayout :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 self.dict_caisse = {} self.list_caisse = ("pièce de 1c", "pièce de 2c", "pièce de 5c", "pièce de 10c", "pièce de 20c", "pièce de 50c", "pièce de 1", "pièce de 2", "billet de 5", "billet de 10", "billet de 20", "billet de 50", "billet de 100", "billet de 200", "billet de 500", "CB", "chèque") for i in self.list_caisse: self.caisse_layout.addWidget(QtWidgets.QLabel(text=i), self.list_caisse.index(i), 0) self.dict_caisse[i] = QtWidgets.QLineEdit() self.caisse_layout.addWidget( self.dict_caisse[i], self.list_caisse.index(i), 1)
mon texte dans les QLabel n'est toujours pas centré :'(
Si quelqu'un à la solution pour faire .setAlignment() sur un objet non instancié dans ma boucle for je suis preneur... mais je préfère utiliser un stylesheet dans fichier css bien à part
utiliser des buttons non cliquable est une bonne idée ? c'est les seuls widgets à ma connaissance qui centre le texte de base
EDIT 2 : voici mon css, tout est bon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 QLabel { qproperty-alignment: AlignCenter; padding-left: 10; padding-right: 10; border: 1 solid black; font: 75 10pt "Trebuchet MS"; }
Partager