Bonjour a tous,
Voilà je rencontre un problème qui est pour l’instant a mon niveau incompréhensible. J’ai développé une application Qt qui utilise Qwt. Dans une de mes classes je déclare un Qwtplot. J’ai compilé l’ensemble en mode debug -> la tout fonctionne.
Maintenant je dois compiler en mode release -> à la compilation pas d’erreur ni de warning. Mais lors de l’exécution du programme je rencontre l’erreur suivante :
Je clique sur ignorer puis j’ai :Debug error!
Program : ...
Module : 4.2.2
File Global\qglobal.cpp
line : 2001
QWidget : must construct a qApplication before a QpaintDevice
De nouveau je clique sur ignorer :Debug error!
Program : ...
Module : 4.2.2
File Global\qglobal.cpp
line : 2001
QWidget : cannot create a Qwidget when no GUI is being used.
Et finalement mon application plante :Debug error!
Program : ...
Module : 4.2.2
File Global\qglobal.cpp
line : 2001
Assert : "uncreated widgets" in file kernel\qwidget.cpp, line 901
Il s’arrête dans le fichier Qhash.h à la ligne 239. Je pense (en faite pas sur du tout) que le pointeur qui pointe sur 0x00000000 est "This".unhauled exeption at 0x0047db2c (QtGui4) in XXX.exe : 0xC0000005 : access violation reading location 0x00000000
Voilà il me dit de faire une Qapplication avant, pourquoi pas mais comment je l’intègre au code. Ce n’est pas fait quand il passe dans le constructeur ? Et dans la documentation de Qapplication, il parle de int argc et char **argv, que représente t’il ?
De plus j’ai l’impression que c’est un problème de pointeur (selon la dernière erreur). Ou qu'il ne passe pas par le constructeur?
Voilà si certain on des pistes pour corriger ses erreurs je suis preneur. Je mets en suite la partit du code qui semble posée problème :
Appel de ma fonction :
Puis ma fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Maclasse **page_visu; page_visu=(Maclasse**) malloc(20*sizeof(MAclasse*)); page_visu[i]= new page_visualisation1(); page_visu[i]->creation_page(...);
Dernière info : j'utilise visual studion 2005 SP1 avec Qt 4.2.2 et Qt intègration.
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 void page_visualisation1::creation_page( ) { . dial2->ajout_chemin(nom_variable_visua,p); myPlot = new QwtPlot(nom_variable_visua); //créé un layout et intègre les éléments layout = new QHBoxLayout(this); layout->addWidget(myPlot); creer_menu(); creer_courbe(); myPlot->setMargin(2); QString titre_axe_x("Temps en seconde"); myPlot->setAxisTitle(2,titre_axe_x); QString titre_axe_y("Valeur du modèle"); myPlot->setAxisTitle(0,titre_axe_y); QColor couleur1 = QColor(190,240,240,50); myPlot->setCanvasBackground(couleur1); //dimmenssionne et affiche la page resize(600,300); show(); base_temps(); }
Merci pour vos réponsses. Et bon week end de paque à tous.
Partager