2010-07-28 8 views
0

J'utilise Qt 4.6 et C++.Aide Intégration dans l'application Qt/C++

J'ai un manuel d'utilisation (.chm) pour mon application qui a l'aide nécessaire pour les utilisateurs d'exécuter l'application. Maintenant, je veux que cette aide soit intégrée dans ma demande, de sorte que lorsque l'utilisateur sélectionne à l'aide de l'application, le manuel utilisateur sera ouvert avec la page d'aide correspondante affichée. De cette façon, je peux utiliser le manuel déjà disponible et les utilisateurs trouveront facile de sonder le document. (car il est familier)

Le manuel d'utilisateur est au format .chm qui correspondant des mots-clés de recherche, qui peuvent être utilisés pour afficher la page correspondante lorsqu'elle est sélectionnée à partir de l'application. Juste comme F1 aide dans l'une des applications Windows.

Est-il possible de le faire dans Qt ou C++? Ou

Quels sont les autres moyens par lesquels l'aide peut être intégré dans l'application?

Tous les indicateurs concernant ce sont les bienvenus ..

Répondre

2

Oui, il est possible. L'infrastructure du système d'aide a été conçue pour s'intégrer au développement normal de Win32 dans Visual Studio, mais cela n'est pas techniquement nécessaire. Fondamentalement, vous appelez simplement HtmlHelp(GetDesktopWindow(), "Yourhelp.chm", HH_HELP_CONTEXT, IDYourCurrentContext);.

+0

Pouvez-vous élaborer sur la fonction HtmlHelp(). Fondamentalement, je suis habitué à Qt mais la fonction ressemble à un VC++. – liaK

+0

Ce n'est pas spécifique à VC++, mais une fonction API Win32 générale. Inclure Htmlhelp.h et le lien à Htmlhelp.lib (vous obtenez ces en installant HTML Help Workshop, mais je présume que vous avez déjà ceux-ci si vous avez fait un .chm) – MSalters

+0

Cool .. Est-il possible pour moi de passer la valeur de l'élément d'index de cette fonction afin qu'il charge directement la page désirée? – liaK

1

Plus Qt façon de faciliter l'intégration peut se faire est la suivante.

Les fichiers CHM sont toujours ouverts par le hh.exe

Ainsi,

QProcess::execute("hh.exe D:/Manual.chm"); 

peut être utilisé pour ouvrir le fichier Manual.chm de l'application.

La commande

QProcess::execute("hh.exe D:/Manual.chm::page1.htm"); 

ouvrira la chm file avec le page1.htm chargé. Cela sera utile pour charger une page d'aide spécifique dans le chm file.

La seule chose que nous devons être conscients de cette approche est que nous devons avoir connu le nom du fichier des pages web (icipage1.htm) précédemment ..

Hope this une aide aussi ... :)

1

QDesktopServices :: OpenURL() serait de façon encore plus Qt. Ensuite, vous n'avez pas besoin de spécifier hh.exe mais utilisez plutôt les associations de fichiers système pour utiliser l'application appropriée. D'où - la portabilité, la chose clé derrière les trucs Qt.