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
|
from PyQt5.Qtcore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Test_fenetre(Qwidget):
def __init__(self):
super().__init__()
self.lay_gen=QVBoxLayout(self)
self.traitement_dataset_excel()
self.ui_questionnaire()
self.show()
def traitement_dataset_excel(self):
#ici je récupérè les données d'un fichier excel et je manipule une colonne df['thématique'] et une colonne['question']
#je passe sur la déclaration qui n'apporte rien pour votre compréhension
def etat_checkbox(self):
#Ici je test le certains attributs suite a l'activation d'un checkbox
print (f"parent du checkbox: {self.sender().parent().layout()}") #ça me donne la QVBoxLayout() qui contient le QHBoxLayout qui contient le QCheckBox
print (f"autre parent: {self.sender().parent()}") #ca me donne le QGroupBox contenu dans le QVBoxLayout(self.lay_questionnaire)
def ui_questionnaire(self):
#ici je limite l'itération pour que ce soit plus rapide a comprendre et plus visible.Dans mon interface je pose un QScrollArea pour pouvoir voir toutes les questions classées dans chaque thématique
for index in range(2):
self.lay_questionnaire=QVBoxLayout()
self.group=QGroupBox(str(index))
#Ici aussi je limite litération a 2 questions pour plus de facilité
for indey in range(2):
self.lab=QLabel("question_"+str(indey))
#Je crée un conteneur de QCheckBox pour donner une note(1 à 5) à la question
self.hlay_question=QHBoxLayout()
#Je crée les QCheckBox dynamiquement et normalement selon le nombre de questions que j'ai a poser
for indexy in range(3):
self.note=QCheckBox(str(indexy)):
self.note.clicked.connect(self.etat_checkbox)
self.hlay_question.addWidget(self.note)
#Intégration de la question et du QHBoxLayout de QCheckBox dans le QVBoxLayout
self.lay_questionnaire.addWidget(self.lab)
self.lay_questionnaire.addLayout(self.hlay_question)
#Intégration dans QVBoxLayout général
self.group.setlayout(self.lay_questionnaire)
self.lay_gen.addWidget(self.group)
app=QApllication([])
appli=Test_fenetre()
app.exec_() |
Partager