Salut!
Je sollicite votre aide pour un souci concernant la barre de progression.
J'ai crée un bout de code auquel j'ai ajouté une barre de progression pour suivre l'évolution du processus.
Le precessus en soi se trouve sur une fenêtre secondaire. Le problème est que lorsque j'appelle la fenetre
secondaire à partir de la fenetre mere, elle s'ouvre au meme moment que se met en marche la barre de progression, sans que je n'ai à lancer la fonction elle-même.
J'ai utilisé la QprogessBar et la QDialogBar, mais il n'y a pas changement.
Est-ce parce que ces barres ne se trouvent pas dans la fonction indiquée?
Je remarque aussi qu'avec QPropgressDialog, la compilation est trop lente. Ca prend au moins 7 fois plus de temps que lorsque je retire QProgressDialog.
Je vous serai reconnaissant si vous m'éclaircissiez.
Voici mon code:

Fichier FenetrePrin.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# include "FenetrePrin.h"
 
FenPrin::FenPrin()
{
    m_zoneCentrale = new QWidget;
    m_zoneCentrale->setFixedSize(300, 190); 
 
    m_fenetreAligment = new QRadioButton("Fenetre prin", m_zoneCentrale);
    m_fenetreAligment->move(225, 150);
 
 
    connect(m_fenetreSecon, SIGNAL(clicked()), this, SLOT(ouvrirFenetreSecon()));
 
}
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
#include "FenetreSecon.h"
 
FenetreSecon::FenetreSecon(QWidget *parent = 0): QDialog(parent)
{
    this->setFixedSize(275, 160);
    m_button1 = new QPushButton("Proceed", this);
    m_button1->move(50, 140);
 
 
    m_temps = new QTimer(this);
    m_temps->start(0);
    int steps = 0;
 
    connect(m_barreProgession, SIGNAL(canceled()), this, SLOT(cancel()));
    connect(m_temps, SIGNAL(timeout()), this, SLOT(align()));
}
Fichier FennetreSecon.cpp
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
void FenetreAlignement::cancel()
{
    m_temps->stop();
}
 
void FenetreSecon::align()
{
    m_barreProgession->setValue(steps); 
    steps++;
    if(steps > m_barreProgession->maximum())
    {
        m_temps->stop();
    }
 
 
//    Fonction1;
//    Fonction2;
}