Bonjour,
Étant débutant en python j'aurai aimé avoir des renseignement sur se qu'il se passe réellement dans le code suivant établi par mes soins:

Et plus particulièrement sur la méthode "connect":

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
#! /usr/bin/python
#-*-coding: utf-8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import os,sys
 
def main(args):
    #EXO LAYOUT
    a=QApplication(args)
    #Une fenetre
    fenetre=MaForm()
 
    fenetre.show()
    r=a.exec_()
    return r
 
class MaForm(QWidget):
    def __init__(self):
        #Une fenetre
        QWidget.__init__(self)
 
        #Des boutons sans parents
        bouton1 = QPushButton("Xenon")
        bouton2 = QPushButton("rrrrrr")
        bouton3 = QPushButton(qApp.trUtf8("Hopéy"))
        bouton4 = QPushButton("wololo...")
        label = QLabel(qApp.trUtf8("Caché"))
 
 
        #Création d'un groupBox
        groupbox = QGroupBox(qApp.trUtf8("YOP"), self)
        radBut1 = QRadioButton("petit")
        radBut2 = QRadioButton("moyen")
        radBut3 = QRadioButton("grand")
        radBut2.setChecked(True);
 
        #Création de 3 Layouts un pour bouton un pour GroupBox et  Global
        unLayout = QGridLayout()
        Global = QGridLayout()
        anotherLayout = QVBoxLayout()
 
        #les boutons sont mis dans le Layout
        unLayout.addWidget(bouton1, 0, 0)
        unLayout.addWidget(bouton2, 1, 1, 1, 1)
        unLayout.addWidget(bouton3, 2, 2, 1, 1)
        unLayout.addWidget(bouton4, 2, 1, 1, 1)
        unLayout.addWidget(label, 1, 2)
 
        #Les radiobutton sont mis dans le Layout
        anotherLayout.addWidget(radBut1)
        anotherLayout.addWidget(radBut2)
        anotherLayout.addWidget(radBut3)
 
        #Le layout des radioButton est mis dans un groupBox
        groupbox.setLayout(anotherLayout)
 
        #Le Layout est inclus dans la fenetre
        # Ajout d'un Layout dans un Layout avec AddLayout( <Nom>,rows,cols)
        Global.addLayout(unLayout, 0, 1)
        Global.addWidget(groupbox, 0, 0)
        self.setLayout(Global)
 
        def okidoki():
                label.hide()
 
        #Connexion SIGNAL / SLOT
        self.connect(radBut1, SIGNAL("clicked()"), okidoki)
 
 
if __name__=="__main__":
    main(sys.argv)
En ce qui concerne la connexion :
- Pourquoi à la place de self.connect puis-je mettre bouton2.connect ou QObject.connect? Sur quel objet est-ce le plus pertinent?

- Pour la partie SLOT, je ne comprends pas pourquoi je n'ai pas besoin de préciser un recepteur dans le connect ? Cela m'embête de le mettre directement dans la méthode ( Sinon comment je peux faire )

Voilà je suis conscient que je pose beaucoup de questions à la fois mais je ne trouve pas de documentation précise sur le sujet...

N'hésitez pas à donner votre avis même sur une seule question!

Merci d'avance !