web-dev-qa-db-fra.com

Erreur du widget QVision lors de la compilation

Une seule erreur à faire jusqu'à ce que je puisse l'utiliser pour mes recherches!

Warning: Z-order assignment: " is not a valid widget.
FILE: qvvideoreaderblockwidget.ui

Il n'y a pas de numéro de ligne qui l'accompagne. J'ai essayé de trouver mais je n'ai pas pu voir une partie ouverte. 

Que dois-je faire pour compiler correctement cette bibliothèque?

37
Rek

Editez le fichier ui en dehors de Qt Creator. Supprimez les lignes avec les balises 'zorder'. Ouvrez ensuite dans Qt Creator et compilez à nouveau. Cela a fonctionné pour moi alors parfaitement, l'avertissement n'apparaissait plus.

75
Vlad

OK, j'ai eu ça et ça m'a énervé aussi. Je ne sais pas ce qui est arrivé pour causer cela, mais ce n'est pas grave. Je suppose que casser et refaire toutes les mises en page pourrait résoudre le problème. D'autres frameworks tendent à beaucoup d'avertissements, mais je suis nouveau sur Qt, pas encore. Je suis allé dans un autre éditeur et j'ai supprimé une ligne qui disait (du mieux que je puisse me souvenir):

<z-order>verticalSpacer</z-order>

qui était parmi beaucoup d'autres lignes qui étaient aussi des balises d'ordre z. J'ai supprimé la ligne avec cette balise et tout reconstruit. Le problème est parti. Il est intéressant de noter que toutes les balises d’ordre z ont disparu de mon fichier lorsque je l’ai regardé ensuite. Ce doit être un insecte, mais évidemment peu important; sauf ceux qui détestent voir la beauté sereine de Qt gâtée.

14
Zathras

Le fichier ui qvvideoreaderblockwidget.ui contient-il des "widgets sponsorisés"? Si tel est le cas, utilisez la boîte de dialogue "Widgets promus" du concepteur (Qt4-) pour vous assurer que l'en-tête de la classe de widgets promus est déclaré en tant qu '"inclusion globale".

Si la classe de widgets personnalisés est nommée "MyWidget" et que l'en-tête est nommé "mywidget.h" et que le widget membre est appelé "myWidget", l'interface utilisateur générera le code de la classe ui comme suit:

#include <mywidget.h>

class qvvideoreaderblockwidget
{
public:
    MyWidget* myWidget;

    // ...
};
2
Mike

C'est ce qui m'est arrivé lorsque j'ai supprimé un assez gros morceau de contenu du concepteur. L'enquête a montré que le concepteur n'avait pas réussi à supprimer une balise zorder relative au widget que j'avais supprimé (qui, accessoirement, contenait un groupe d'autres widgets).

Supprimer la ligne comme suggéré a résolu le problème. Si vous avez une charge de balises zorder, vous devrez probablement faire attention de simplement supprimer celle qui concerne l'élément supprimé.

1
Alan Lenton

J'ai eu le même problème, et supprimer le fichier .exe du dossier de sortie (debug ou release) avant d'exécuter/compiler la source, a résolu le problème.

0
totymedli