Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Linking to Qt offline documentation with Qdoc
Forum Updated to NodeBB v4.3 + New Features

Linking to Qt offline documentation with Qdoc

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
5 Posts 2 Posters 1.0k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Z Offline
    Z Offline
    zhannum
    wrote on last edited by zhannum
    #1

    Hi,
    I am trying to generate documentation for reusable QML components for a project, but I am having trouble getting the *.qch to link to the Qt offline documentation inside QtCreator

    //HelloButton.qml
    /*!
        \qmltype HelloButton
        \inherits QtQuick::Rectangle
        \brief A Hello World button
    */
    Rectangle
    {
        height: 50
        width: 100
        color: "yellow"
        Text
        {
            anchors.centerIn: parent
            text: "Say Hello"
        }
        MouseArea
        {
            anchors.fill: parent
            onClicked: {console.log("Hello World!")}
        }
    }
    

    Ideally, I'd like to be able to generate documentation that looks like the following inside QtCreator:

    0_1555422326487_eb71719b-020d-4b6b-a5d4-bf1b27027f5a-image.png

    0_1555422348065_3e9f6f33-ff19-46dd-a1aa-07bb6d690595-image.png

    I was able to generate the above documentation by including Qt source files in my qdocconf file. This is not ideal as I am re-generating the Qt documentation. What I'd like to do is link to the already existing offline documentation included with the Qt installation.

    I tried using the "indexes" option in the *.qdocconf, but this links externally to the Qt online documentation, which is not what I want.

    It seems like the "depends" option might be what I'm looking for, but when I do something like depends += qtquickcontrols2 I get the error: qdoc: warning: Dependent modules specified, but no index directories were set. There will probably be errors for missing links. I don't get any linkage to the Qt documentation when I try this.

    Is there any guidance on getting this to work the way I want it to? Thanks!

    raven-worxR 1 Reply Last reply
    0
    • Z zhannum

      Hi,
      I am trying to generate documentation for reusable QML components for a project, but I am having trouble getting the *.qch to link to the Qt offline documentation inside QtCreator

      //HelloButton.qml
      /*!
          \qmltype HelloButton
          \inherits QtQuick::Rectangle
          \brief A Hello World button
      */
      Rectangle
      {
          height: 50
          width: 100
          color: "yellow"
          Text
          {
              anchors.centerIn: parent
              text: "Say Hello"
          }
          MouseArea
          {
              anchors.fill: parent
              onClicked: {console.log("Hello World!")}
          }
      }
      

      Ideally, I'd like to be able to generate documentation that looks like the following inside QtCreator:

      0_1555422326487_eb71719b-020d-4b6b-a5d4-bf1b27027f5a-image.png

      0_1555422348065_3e9f6f33-ff19-46dd-a1aa-07bb6d690595-image.png

      I was able to generate the above documentation by including Qt source files in my qdocconf file. This is not ideal as I am re-generating the Qt documentation. What I'd like to do is link to the already existing offline documentation included with the Qt installation.

      I tried using the "indexes" option in the *.qdocconf, but this links externally to the Qt online documentation, which is not what I want.

      It seems like the "depends" option might be what I'm looking for, but when I do something like depends += qtquickcontrols2 I get the error: qdoc: warning: Dependent modules specified, but no index directories were set. There will probably be errors for missing links. I don't get any linkage to the Qt documentation when I try this.

      Is there any guidance on getting this to work the way I want it to? Thanks!

      raven-worxR Offline
      raven-worxR Offline
      raven-worx
      Moderators
      wrote on last edited by
      #2

      @zhannum
      how does your qdocconf file look like exactly?
      Did you include the offline template?

      include($QTDIR/doc/global/macros.qdocconf) #macros for QDoc commands
      include($QTDIR/doc/global/qt-cpp-defines.qdocconf)
      include($QTDIR/doc/global/compat.qdocconf) #compatibility macros
      include($QTDIR/doc/global/fileextensions.qdocconf)
      include($QTDIR/doc/global/qt-html-templates-offline.qdocconf)
      
      ...
      
      # exact paths left out for simplicity - or copy all index files from QTDIR next to your qdocconf file 
      indexes += \
          indexes/qdoc.index \
          indexes/qt3d.index \
          indexes/qtandroidextras.index \
          indexes/qtbluetooth.index \
          indexes/qtcanvas3d.index \
          indexes/qtconcurrent.index \
          indexes/qtcore.index \
          indexes/qtdoc.index \
          indexes/qtgamepad.index \
          indexes/qtgraphicaleffects.index \
          indexes/qtgui.index \
          indexes/qthelp.index \
          indexes/qtimageformats.index \
          indexes/qtlinguist.index \
          indexes/qtlocation.index \
          indexes/qtmultimedia.index \
          indexes/qtnetwork.index \
          indexes/qtnetworkauth.index \
          indexes/qtnfc.index \
          indexes/qtopengl.index \
          indexes/qtplatformheaders.index \
          indexes/qtpositioning.index \
          indexes/qtqml.index \
          indexes/qtqmltest.index \
          indexes/qtquick.index \
          indexes/qtquickcontrols.index \
          indexes/qtquickcontrols2.index \
          indexes/qtquickdialogs.index \
          indexes/qtquickextras.index \
          indexes/qtremoteobjects.index \
          indexes/qtsensors.index \
          indexes/qtspeech.index \
          indexes/qtsvg.index \
          indexes/qtvirtualkeyboard.index \
          indexes/qtwebchannel.index \
          indexes/qtwebengine.index \
          indexes/qtwebsockets.index \
          indexes/qtwebview.index \
          indexes/qtwidgets.index \
          indexes/qtxml.index \
          indexes/qtxmlpatterns.index
      

      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
      If you have a question please use the forum so others can benefit from the solution in the future

      Z 2 Replies Last reply
      0
      • raven-worxR raven-worx

        @zhannum
        how does your qdocconf file look like exactly?
        Did you include the offline template?

        include($QTDIR/doc/global/macros.qdocconf) #macros for QDoc commands
        include($QTDIR/doc/global/qt-cpp-defines.qdocconf)
        include($QTDIR/doc/global/compat.qdocconf) #compatibility macros
        include($QTDIR/doc/global/fileextensions.qdocconf)
        include($QTDIR/doc/global/qt-html-templates-offline.qdocconf)
        
        ...
        
        # exact paths left out for simplicity - or copy all index files from QTDIR next to your qdocconf file 
        indexes += \
            indexes/qdoc.index \
            indexes/qt3d.index \
            indexes/qtandroidextras.index \
            indexes/qtbluetooth.index \
            indexes/qtcanvas3d.index \
            indexes/qtconcurrent.index \
            indexes/qtcore.index \
            indexes/qtdoc.index \
            indexes/qtgamepad.index \
            indexes/qtgraphicaleffects.index \
            indexes/qtgui.index \
            indexes/qthelp.index \
            indexes/qtimageformats.index \
            indexes/qtlinguist.index \
            indexes/qtlocation.index \
            indexes/qtmultimedia.index \
            indexes/qtnetwork.index \
            indexes/qtnetworkauth.index \
            indexes/qtnfc.index \
            indexes/qtopengl.index \
            indexes/qtplatformheaders.index \
            indexes/qtpositioning.index \
            indexes/qtqml.index \
            indexes/qtqmltest.index \
            indexes/qtquick.index \
            indexes/qtquickcontrols.index \
            indexes/qtquickcontrols2.index \
            indexes/qtquickdialogs.index \
            indexes/qtquickextras.index \
            indexes/qtremoteobjects.index \
            indexes/qtsensors.index \
            indexes/qtspeech.index \
            indexes/qtsvg.index \
            indexes/qtvirtualkeyboard.index \
            indexes/qtwebchannel.index \
            indexes/qtwebengine.index \
            indexes/qtwebsockets.index \
            indexes/qtwebview.index \
            indexes/qtwidgets.index \
            indexes/qtxml.index \
            indexes/qtxmlpatterns.index
        
        Z Offline
        Z Offline
        zhannum
        wrote on last edited by zhannum
        #3

        @raven-worx

        Yes I'm including the default offline template.

        Full qdocconf:

        include($QT_INSTALL_DOCS/global/qt-module-defaults-offline.qdocconf)
        include($QT_INSTALL_DOCS/global/config.qdocconf)
        include($QT_INSTALL_DOCS/global/fileextensions.qdocconf)
        
        project = Hello World
        description = Hello World
        
        sourcedirs += . \
        		 #/home/vagrant/qt-everywhere-src-5.11.3/qtquickcontrols2/src/quickcontrols2 \
        		 #/home/vagrant/qt-everywhere-src-5.11.3/qtquickcontrols2/src/quicktemplates2 \
        		 #/home/vagrant/qt-everywhere-src-5.11.3/qtdeclarative/src/quick \
        
        imagedirs += /home/vagrant/qt-everywhere-src-5.11.3/qtquickcontrols2/src/imports/controls/doc/images \
        
        # depends += qtquickcontrols2
        indexes += 	/home/vagrant/Qt/Docs/Qt-5.11.3/qtquickcontrols2/qtquickcontrols2.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qdoc/qdoc.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qmake/qmake.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qt3d/qt3d.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtandroidextras/qtandroidextras.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtassistant/qtassistant.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtbluetooth/qtbluetooth.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtcanvas3d/qtcanvas3d.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtconcurrent/qtconcurrent.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtcore/qtcore.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtdbus/qtdbus.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtdesigner/qtdesigner.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtdoc/qtdoc.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtgamepad/qtgamepad.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtgraphicaleffects/qtgraphicaleffects.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtgui/qtgui.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qthelp/qthelp.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtimageformats/qtimageformats.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtlabscalendar/qtlabscalendar.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtlabsplatform/qtlabsplatform.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtlinguist/qtlinguist.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtlocation/qtlocation.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtmacextras/qtmacextras.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtmultimedia/qtmultimedia.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtnetwork/qtnetwork.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtnfc/qtnfc.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtopengl/qtopengl.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtplatformheaders/qtplatformheaders.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtpositioning/qtpositioning.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtprintsupport/qtprintsupport.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtqml/qtqml.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtqmltest/qtqmltest.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtquick/qtquick.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtquickcontrols/qtquickcontrols.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtquickdialogs/qtquickdialogs.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtquickextras/qtquickextras.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtscxml/qtscxml.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtsensors/qtsensors.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtserialbus/qtserialbus.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtserialport/qtserialport.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtspeech/qtspeech.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtsql/qtsql.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtsvg/qtsvg.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qttestlib/qttestlib.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtuitools/qtuitools.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtwaylandcompositor/qtwaylandcompositor.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtwebchannel/qtwebchannel.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtwebsockets/qtwebsockets.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtwebview/qtwebview.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtwidgets/qtwidgets.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtwinextras/qtwinextras.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtx11extras/qtx11extras.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtxml/qtxml.index \
        		/home/vagrant/Qt/Docs/Qt-5.11.3/qtxmlpatterns/qtxmlpatterns.index \
        
        
        outputdir = ./html
        outputformats = HTML
        
        qhp.projects = HelloWorld
        qhp.HelloWorld.file = helloworld.qhp
        qhp.HelloWorld.indexTitle = HelloWorld
        qhp.HelloWorld.indexRoot = 
        qhp.HelloWorld.virtualfolder = HelloWorld
        qhp.HelloWorld.subprojects = qmltypes
        qhp.HelloWorld.subprojects.qmltypes.selectors = qmltype
        

        This does create a link, but it links to the online documentation, which opens a browser window. In the "List of All Members..." page, it also only shows the first ancestor, instead of all ancestors, which is less than ideal.

        <tr>
        <td class="memItemLeft rightAlign topAlign"> Import Statement:</td>
        <td class="memItemRight bottomAlign"> import  </td></tr>
        <tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td>
        <td class="memItemRight bottomAlign"> 
        <p><a href="http://doc.qt.io/qt-5/qml-qtquick-rectangle.html">Rectangle</a></p>
        ...
        
        1 Reply Last reply
        0
        • raven-worxR raven-worx

          @zhannum
          how does your qdocconf file look like exactly?
          Did you include the offline template?

          include($QTDIR/doc/global/macros.qdocconf) #macros for QDoc commands
          include($QTDIR/doc/global/qt-cpp-defines.qdocconf)
          include($QTDIR/doc/global/compat.qdocconf) #compatibility macros
          include($QTDIR/doc/global/fileextensions.qdocconf)
          include($QTDIR/doc/global/qt-html-templates-offline.qdocconf)
          
          ...
          
          # exact paths left out for simplicity - or copy all index files from QTDIR next to your qdocconf file 
          indexes += \
              indexes/qdoc.index \
              indexes/qt3d.index \
              indexes/qtandroidextras.index \
              indexes/qtbluetooth.index \
              indexes/qtcanvas3d.index \
              indexes/qtconcurrent.index \
              indexes/qtcore.index \
              indexes/qtdoc.index \
              indexes/qtgamepad.index \
              indexes/qtgraphicaleffects.index \
              indexes/qtgui.index \
              indexes/qthelp.index \
              indexes/qtimageformats.index \
              indexes/qtlinguist.index \
              indexes/qtlocation.index \
              indexes/qtmultimedia.index \
              indexes/qtnetwork.index \
              indexes/qtnetworkauth.index \
              indexes/qtnfc.index \
              indexes/qtopengl.index \
              indexes/qtplatformheaders.index \
              indexes/qtpositioning.index \
              indexes/qtqml.index \
              indexes/qtqmltest.index \
              indexes/qtquick.index \
              indexes/qtquickcontrols.index \
              indexes/qtquickcontrols2.index \
              indexes/qtquickdialogs.index \
              indexes/qtquickextras.index \
              indexes/qtremoteobjects.index \
              indexes/qtsensors.index \
              indexes/qtspeech.index \
              indexes/qtsvg.index \
              indexes/qtvirtualkeyboard.index \
              indexes/qtwebchannel.index \
              indexes/qtwebengine.index \
              indexes/qtwebsockets.index \
              indexes/qtwebview.index \
              indexes/qtwidgets.index \
              indexes/qtxml.index \
              indexes/qtxmlpatterns.index
          
          Z Offline
          Z Offline
          zhannum
          wrote on last edited by
          #4

          @raven-worx Is there any additional guidance on using the "depends" option?

          raven-worxR 1 Reply Last reply
          0
          • Z zhannum

            @raven-worx Is there any additional guidance on using the "depends" option?

            raven-worxR Offline
            raven-worxR Offline
            raven-worx
            Moderators
            wrote on last edited by raven-worx
            #5

            @zhannum
            not that i am aware of
            https://doc.qt.io/qt-5/qtgui-qdocconf.html

            but i think its not really necessary, also its not documented it seems.

            --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
            If you have a question please use the forum so others can benefit from the solution in the future

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved