Comment convertir un projet win32 régulier (VC++ vcproj) en projet Qt?

Comment puis-je convertir des fichiers vcproj existants en fichiers de projet que L'add-in QT de Visual Studio reconnaît et traite comme des projets Qt valides?

est-ce que je dois juste mordre le morceau et créer de nouveaux projets pour remplacer les anciens, puis ajouter du code existant?

j'utilise QT 4.6 et VS 2008 avec Qt Add-in 1.1.2. Les fichiers vcproj originaux ont et non ont été générés avec QMake.

23
demandé sur Morten Fjeldstad 2010-01-18 21:36:06

5 réponses

en utilisant Visual Studio 2010+ il est maintenant possible de convertir un projet en un projet Qt Addin, en utilisant la fonction "Convert project to Qt Add-in project" de L'Addin Qt.

les étapes suivantes sont tirées du work around dans le bogue QTVSADDINBUG-27. Cela a été testé avec Visual Studio 2010, mais devrait fonctionner de la même manière avec les nouvelles versions:

  1. clic droit sur votre projet dans "Solution Explorer", cliquez sur " Décharger Projet 1519110920"
  2. faites un clic droit sur votre projet dans "Solution Explorer", cliquez sur "Éditer .vcxproj "
  3. ajouter la ligne <Keyword>Qt4VSv1.0</Keyword> entre les étiquettes <PropertyGroup Label="Globals"> et </PropertyGroup> .
  4. faites un clic droit sur votre projet dans "Solution Explorer", cliquez sur" Reload Project "
  5. clic droit sur votre projet dans "Solution Explorer", cliquez sur "Convertir le projet en Qt Add-In projet"

si vous avoir des fichiers d'en-tête dans votre projet vous allez devoir suivre les instructions dans ce réponse pour déclencher la génération de fichiers moc_* dans le dossier "fichiers générés".

pour les éditions de studio visuel plus anciennes que 2010 voir ce travail autour de .

27
répondu Benjamin 2017-05-23 12:26:15

Voici la réponse de Nokia Support engineer, nom supprimé pour la protection de la vie privée:

Salut,

Merci pour la suggestion. J'ai transmise à nos développeurs qui envisagera de le mettre en œuvre pour une version future. Vous pouvez le suivre en utilisant le lien suivant:

https://bugreports.qt.io/browse/QTVSADDINBUG-27

en ce qui Concerne, Ingénieur De Soutien, Qt Development Frameworks, Nokia >

question originale

nous avons pas mal de projets VCPROJ hérités que nous souhaitons ajouter Qt. Actuellement, nous n'avons pas un moyen facile de convertir ces héritage vcproj les fichiers dans un VCPROJ QT-enabled.

Qu'est-ce que J'entends par Qt-enabled?

Sur un non-Qt-activé vcproj, quand je clic droit sur le nom du projet sous Solution Explorer, toutes les options liées à Qt sont grisées.

il serait vraiment utile si Nokia ajoute cette capacité à Vstd Add-in.

StackOverflow fellows, si vous souhaitez voir cette fonctionnalité Mise en œuvre par Nokia, s'il vous plaît aider à voter pour elle au lien ci-dessus! = )

8
répondu sivabudh 2017-01-08 02:27:58

j'utilise Qt VS Outils au lieu de Qt VS Add-in.

Instructions

dans le .vcxproj Fichier, faire les modifications suivantes:

ajouter <Keyword>Qt4VSv1.0</Keyword> dans <Project><PropertyGroup Label="Globals"> (en accord avec la réponse de Benjamin ).

Ajouter l'élément suivant dans <Project> (l'élément racine):

  <ProjectExtensions>
    <VisualStudio>
      <UserProperties MocDir=".\GeneratedFiles$(ConfigurationName)" UicDir=".\GeneratedFiles" RccDir=".\GeneratedFiles" lupdateOptions="" lupdateOnBuild="0" lreleaseOptions="" Qt5Version_x0020_x64="5.6-msvc2013_64" MocOptions="" />
    </VisualStudio>
  </ProjectExtensions>

noter que la valeur de la l'attribut Qt5Version_x0020_x64 doit correspondre au nom d'une version Qt dans Qt VS Tools. Vous pouvez définir une valeur arbitraire puis la corriger dans les paramètres du projet Qt dans Visual Studio.

mon installation

  • Visual Studio 2013
  • Qt VS Outils 2.0.0 Beta (apparemment un changement d'image de l'intervalle Qt VS Add-in)
  • Qt 5.6 msvc2013_64

Notes

quand je suis la réponse de Benjamin et que je tente de" convertir le projet en Qt VS Tools project", Visual Studio est bloqué.

la seule fonctionnalité spécifique Qt que j'ai essayé avec le projet est l'exportation A.dossier pri.

j'ai inversé les modifications nécessaires d'un nouveau projet VS créé en utilisant le modèle Qt GUI Application .

2
répondu Filip Bártek 2017-05-23 12:26:15

la conversion d'un projet de CV régulier en un projet QT devrait être plus facile et le message d'erreur affiché par le plug-in Qt lors de la tentative d'ajouter une classe Qt à un projet non-QT est extrêmement inutile, surtout si l'on considère les différences réelles entre un Qt .vcprojfile et un non-Qt one sont minimes. Il est souvent le cas que vous avez le code d'héritage existant construit dans les bibliothèques et Dll. Lors de la migration vers Qt, vous pouvez ajouter une classe Qt à un module existant qui un non-Qt projet. Si le module a relativement peu de fichiers source, vous pouvez trouver plus facile de recréer le projet en tant que projet Qt. Si il a des centaines de fichiers source ou est complexe dans d'autres façons, il est souvent plus facile de simplement éditer le .vcproj fichier. En comparant régulièrement .vcproj avec Qt, c'est facile de voir quelles sont les différences:

  1. un projet Qt a un mot-clé= " Qt4VS1.0" immédiatement avant Ligne TargetFrameWorkVersion en haut du fichier.
  2. en bas du fichier, vous devez ajouter les Globals nécessaires (en qtversion particulier.Win32)
  3. vous aurez besoin d'ajouter les emplacements des fichiers d'en-tête Qt inclure les chemins (pour toutes les configurations de construction). Vous pouvez le faire plus tard via l'interface utilisateur de visual studio
  4. pour un exe ou dll, vous aurez également besoin d'ajouter les emplacements de bibliothèque Qt et des fichiers de Bibliothèque aux options de linker.

Vous en fait, il suffit de faire 1 et 2 dans un éditeur de texte et ensuite vous pouvez recharger le projet dans Visual Studio.

après avoir mis en place include paths et bibliothèques, vous devriez être en mesure de construire le projet comme d'habitude. Ensuite, vous pouvez ajouter une nouvelle classe Qt ou convertir une classe existante dans une classe Qt. Pour faire ce dernier, supprimez d'abord les fichiers source pour la classe existante du projet, sinon L'Assistant QT add class est susceptible de se plaindre.

Les étapes ci-dessus sont destiné aux utilisateurs expérimentés, et vous devriez toujours sauvegarder les projets existants .fichiers vcproj avant édition manuelle. De simples erreurs peuvent rendre le fichier inutilisable.

1
répondu Dave Hussey 2012-01-25 10:57:38

plus de réponse de l'ingénieur de soutien Qt; je pense que le premier pargraph est utile car je ne savais pas que avant:

je pense que c'est un malentendu vraiment. Si vous avez un projet Qt généré avec L'Add-in, puis vous peut transformer ce projet en un qmake projet Qt généré - et vice versa; Si vous avez un .vcproj qui a été généré en faisant qmake-tp vc, puis vous pouvez convertir cette Qt complément projet.

il n'y a pas de fonctionnalité pour convertir un Projet win32 régulier dans un Qt permis projet, donc la suggestion créé est toujours valide, voir:

https://bugreports.qt.io/browse/QTVSADDINBUG-27

je peux voir de l'histoire de ce rapport qu'il a été fermé et réouverte, donc je suppose qu'il y avait un malentendu concernant ce que vous étaient à la recherche à la première place.

si vous créez un .projet pro pour vous en utilisant qmake, vous devriez être capable pour créer une .vcproj fichier à l'aide de la " qmake - tp vc ' dessus .pro file. Le manuel de qmake est disponible ici:

http://doc.qt.io/qt-5/qmake-manual.html

j'espère que cela aidera.

Cordialement,

--

Ingénieur De Soutien, Développement Qt Frameworks, Nokia

1
répondu sivabudh 2017-01-08 01:53:46