Bonjour,

Je suis en train de développer un programme sous Qt pour ma Raspberry et j'ai un problème pour connecter un SIGNAL avec un SLOT.
Voici mon problème :

- J'ai une fenêtre principale dans laquelle j'affiche des images provenants d'une camera
- Pour récupérer les images j'ai créé un thread différent de celui de la fenêtre principale
- Dans ce thread (celui de la caméra) j'ai besoin de créer une nouvelle fenêtre pour réaliser la configuration de la caméra et c'est pour récupérer les signaux (appui sur un bouton, ...) de cette fenêtre que j'ai un problème

Voici une partie de ma classe principale (fenêtre d'affichage des images) qui créée le nouveau thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
camThread = new QThread(this);
    cam = new cameraC(this);
    cam->moveToThread(camThread);
    connect(camThread, SIGNAL(started()), cam, SLOT(process()));
    qRegisterMetaType<QImage>("QImage");
    connect(cam, SIGNAL(updateImage(QImage)), this, SLOT(updatePictureDisplay(QImage)));
    connect(cam, SIGNAL(finished()), camThread, SLOT(quit()));
    camThread->start();
Et dans le thread que je viens de créer, voici la partie de la fenêtre de configuration :
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
settingsWindow = new QWidget();
    settingsWindow->setObjectName(QString::fromUtf8("Settings Window"));
    settingsWindow->setFixedSize(0,0);
 
    main_verticalLayout = new QVBoxLayout;
    main_verticalLayout->setSpacing(6);
    main_verticalLayout->setContentsMargins(11, 11, 11, 11);
    main_verticalLayout->setObjectName(QString::fromUtf8("main_verticalLayout"));
 
    triggerCheckbox = new QCheckBox(settingsWindow);
    triggerCheckbox->setText("Trigger ON/OFF");
    if(triggerMode.onOff){
        triggerCheckbox->setChecked(true);
    }
    connect(triggerCheckbox, SIGNAL(stateChanged(int)), this, SLOT(updateTriggerOnOff(int)));
 
    applyButton = new QPushButton(settingsWindow);
    applyButton->setText("Apply");
    connect(applyButton, SIGNAL(clicked(bool)), this, SLOT(applySettings(bool)));
 
    main_verticalLayout->addWidget(triggerCheckbox);
    main_verticalLayout->addWidget(applyButton);
 
    settingsWindow->setLayout(main_verticalLayout);
 
    settingsWindow->show();
Le problème s'est que les SLOTs "updateTriggerOnOff" et "applySettings" ne sont jamais exécutés lors de l'émission de leurs signaux respectifs.

Voila j'espère que j'ai été assez claire.
Merci par avance.

Jo