J'utilise Visual Studio 2010, QT Add-in, etc. Tous OK, puis créez un nouveau projet à l'aide de QT Add-in ... lors de la double cliquant * .ui (le formulaire réel) Fichier dans vs il ouvre QtDesigner, puis je Mettez des contrôles sur, mais cela ne change pas mon code du tout: / p>
Le formulaire QT est modifié, il contient ces contrôles mais les fichiers source sont les mêmes que avant même après la construction de mon projet. P>
Je manque quelque chose? Je pense que qtdesinger shoult a mis du code pour des objets que j'ai créés à l'aide de QTDesigner. P>
COS Sans que nous devons écrire tout le code comme s'il n'y avait pas de qtdesigner, donc qtdesinger est Useles dans Visual Studio, la même chose que nous pouvions simplement faire en codant à la main une interface de formulaire. Merci beaucoup. P>
EDIT: P>
OK J'ai copié ceci de QT Site: P>
vous référencez des objets à partir d'un fichier .ui ... p>
Le modèle d'analyse de modèle de code Visual Studio n'estime que des sources C ++, ce qui signifie Pour que les widgets ou les objets définis dans les fichiers .ui ne soient pas accessibles. Pour contourner le problème, le complément de QT Visual Studio automatiquement génère un code C ++ à partir du fichier .ui en enregistrant le fichier et en cours d'exécution UIC dessus. Cette étape est effectuée chaque fois que le projet est construit. Si la L'achèvement du code ne fonctionne pas, essayez de reconstruire le projet. Il est possible que vous deviez attendre un peu de temps, avant l'achèvement du code complet fonctionne après la mise à jour d'un fichier .ui. Pour plus d'informations, vous pouvez vous référer à la section Propriétés de la modification des propriétés du projet. Il ne fonctionne toujours pas ... P>
Vous devez actualiser le modèle de code, IntelliSense. Ceci est fait par Ouverture de l'explorateur de solution, appelant le menu contextuel de la Projet et activation de l'élément Mise à jour IntelliSense. P> blockQuote>
Maintenant, il semble que j'ai de tels problèmes, mais cela n'aide pas du tout, mettez à jour Intelisece. Je ne peux pas voir une telle option dans Visual Studio, Il semble que mon complément Visual Studio ne fonctionne pas. P>
Il dit "Vous devez actualiser le modèle de code" Woot? Quelqu'un peut-il m'expliquer comment faire cela s'il vous plaît? P>
Voici quelques avertissements de sortie lors de la construction de mon projet: P>
AVERTISSEMENT 1 AVERTISSEMENT: Aucune ressource dans 'C: \ Utilisateurs \ admin \ Documents \ Visual studio 2010 \ Projects \ VisualStudio \ Test \ Test.QRC '. C: \ utilisateurs \ admin \ documents \ visuels Studio 2010 \ Projects \ VisualStudio \ Test \ RCC Avertissement 2 Avertissement LNK4099: PDB 'VC100.PDB' n'a pas été trouvé avec 'qtmaind.lib (qtmain_win.obj)' ou à 'C: \ Utilisateurs \ admin \ Documents \ Visual Studio 2010 \ Projects \ VisualStudio \ vc100.pdb '; Relier l'objet comme s'il n'y a pas de débogage Info C: \ Utilisateurs \ admin \ Documents \ Visual Studio 2010 \ Projects \ VisualStudio \ Test \ qtmaind.lib (qtmain_win.obj) p> blockQuote>
3 Réponses :
Si vous avez créé un widget QT à l'aide de la nouvelle assistant de classe, des trucs doivent fonctionner comme prévu. P>
I.e. Les fichiers .ui sont compilés par les fichiers UIC de QT à .CPP, c'est-à-dire que vous devez construire votre projet pour obtenir ces modifications dans la classe d'interface utilisateur. p>
Ainsi, les fichiers .ui devraient être ajoutés au projet et avoir des règles de construction spéciales qui ont invoqué «UIC» sur eux. Si ce n'est pas le cas, essayez de les ajouter à votre projet (de cette façon, le complément QT doit configurer les règles de construction) p>
Normalement, vous avez une classe qui hérite de qwidget qui inclut ensuite la classe CPP compilée, d'une manière ou d'une autre, généralement en tant que variable de membre (mais l'héritage est également une option). P>
Ajouter un fichier .ui-hétéro up devrait fonctionner aussi (si vous êtes dans un projet QT, que vous êtes ..), mais évidemment quelque chose ne va pas. P>
Est-ce que les exemples de projets fonctionnent comme prévu? P>
Comment voulez-vous dire "Vous devez construire votre projet"? Je l'ai cumulée et aucune modification des fichiers source n'a été faite. Pouvez-vous être plus détaillé sur la construction.
Créez-vous des widgets QT à l'aide de l'assistant "Nouvelle classe"? Si tel est le cas, les fichiers .ui doivent créer automatiquement dans les fichiers C ++ et vous devez avoir des fichiers .h / .cpp (pour le widget QT) qui importent la sortie à partir de l'étape de compilation d'interface utilisateur .. .. Réponse mise à jour pour inclure les informations pertinentes ..
Les exemples de projets ne fonctionnent pas, lors de l'ouverture de la solution, il indique qu'un ou plusieurs projets ne sont pas ajoutés ... Tous les projets sont déchargés et ne peuvent pas être rechargés. Je comprends ce que tu es sauf, mais pas de chance, de reconstruire, de lire des fichiers, etc. Les sources sont toujours les mêmes.
Je vais expliquer un peu comment les choses fonctionnent et les relations entre les fichiers et, espérons-le, cela résoudra votre problème.
Lorsque vous modifiez le fichier interface utilisateur à l'aide du concepteur Toutes les modifications sont apportées au fichier UI. lui-même. Ensuite, lorsque vous construisez un couple de choses arrivera. P>
Premier ... Une étape de construction personnalisée sera exécutée dans le fichier d'interface utilisateur. Cette étape de construction fonctionne "UIC" comme indiqué MACKE, et générera un fichier appelé "ui_thenameofyouruifile.h". Lorsque ce fichier est situé dépend de vos paramètres de projet, mais si vous regardez dans votre projet, vous devez voir un dossier appelé fichier généré dans votre projet. p>
p>
Si vous regardez là-bas devrait voir le fichier nouvellement généré. Ceci est le code «modifié» lorsque vous apportez des modifications à votre formulaire. Maintenant, si ce fichier n'est pas mis à jour, ou n'existe pas du tout, les paramètres de votre projet ont été gâchés. Dans ce cas, je supprimerais votre fichier .ui du projet et je l'ajoutez. Le complément devrait faire sa magie et ajouter tout ce dont vous avez besoin. Construire à nouveau et cela devrait fonctionner. (Je suppose que c'est probablement votre problème) P>
La deuxième chose qui devrait se produire lorsque vous construisez, c'est que la classe qui utilise votre fichier d'interface utilisateur devrait recompiler. Généralement, lorsque vous créez un fichier UI, vous créez également un fichier .h et .cpp. C'est là que nous faisons l'une des logiques amusantes que nous pourrions avoir besoin dans notre fenêtre. Le concepteur Qt ne changera jamais cette classe. P>
Dans le fichier d'en-tête, nous vous référons au fichier d'interface utilisateur en faisant ceci: p> et ensuite nous ajoutons Une variable de membre P> UI :: TUNEAMEFYOURUINIFILE UI; P> Il y a quelques façons de le faire, mais essentiellement c'est l'idée. Le complément est censé configurer votre projet de manière à ce que le répertoire des fichiers générateurs est inclus dans les paramètres de votre projet dans les paramètres de votre projet, mais c'est un autre endroit pour vérifier que votre code est vraiment lié à votre code. le fichier généré correct. p> p>
Bonjour, vous avez dit "Le concepteur Qt ne changera jamais cette classe." Pour être honnête c'était mon décalage. Je fequine très stupide maintenant lol, les fichiers générés vont bien, mais je pensais que qtdesigner mettra un code squelette dans ma source de classe afin que je puisse continuer à mettre mon code. Au moins c'est le cas lors de l'utilisation de CLR FORMES .. VS mettra ces codes de squelette afin que vous puissiez continuer à me placer, malheureusement, ce n'est pas le cas avec QT-Adidin. Des thaks beaucoup à vous et aux autres pour expliquer !!
Si le complément Qt est installé correctement, il devrait générer l'étape de construction personnalisée pour les fichiers associés à qt (.ui ou le fichier MOC). Je n'ai pas essayé le complément Qt avec vs 2010, mais avec vs 2008, ça va.
Le Travailler sur em> pour votre problème, vous devez ajouter manuellement l'étape de construction personnalisée pour chaque fichier d'interface utilisateur. vous avez dans le projet. Pour ce faire, l'étape est la suivante: p> Cliquez avec le bouton droit sur le fichier UI, puis cliquez sur les propriétés (j'utilise VS-2008 pour faire cette étape et vous attendre à ce que cela ne soit pas très différent dans VS 2010). P> LI>
Dans la mesure de construction personnalisée, ajoutez ceci dans la ligne de commande: "$ (qtdir) \ bin \ uic.exe" -o ". \ générésfiles \ ui _ $ (INPPUTPATH). " p> li>
et ajoutez ceci sous la sortie: ". \ générésfiles \ ui _ $ (INPUTNAME) .H" P> LI>
Si cela est terminé, le fichier UI est compilable (lorsque vous cliquez avec le bouton droit de la souris, il peut être compilé), donc lorsque le contenu du fichier d'interface utilisateur modifie, le nouveau fichier de code UI (.h) est régénéré . P> Alternativement, pour réinitialiser le fichier de projet VS (VCPROJX), vous pouvez créer un projet QT dans QT Creator (ou si vous en avez déjà un), puis convertissez le projet de créateur QT (.pro) en VCPROJ. Utilisation de cette ligne de commande: p> Ceci créera la VCPROJ avec la bonne étape de construction personnalisée pour vous (au cas où vous auriez de nombreux fichiers d'interface utilisateur, vous n'avez pas besoin de faire la première approche). P> p>
Merci beaucoup pour cette information, je copierai votre message et l'utiliser pour la référence future pour les constructions personnalisées.