QApplication constructors



  • I'm not sure what is at fault here, but I just noticed that there are some inconsistencies with the QApplication constructors.

    If I type the following code in the editor:
    @
    QCoreApplication *application = new QApplication(
    @

    the code completion shows me that there are 4 different constructors, but if I press F1 on QApplication, none of the constructors in the help match the signatures of the constructors listed by the code completion.

    According to the help:
    @
    QApplication ( int & argc, char ** argv )
    QApplication ( int & argc, char ** argv, bool GUIenabled )
    QApplication ( int & argc, char ** argv, Type type )
    QApplication ( Display * display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0 )
    QApplication ( Display * display, int & argc, char ** argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0 )
    QApplication ( QApplication::QS60MainApplicationFactory factory, int & argc, char ** argv )
    @

    If I introduce a compile error, the output is:
    @
    ..\Launcher\main.cpp:15: error: no matching function for call to 'QApplication::QApplication(int, int)'
    ....\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtGui/qapplication.h:389: note: candidates are: QApplication::QApplication(const QApplication&)
    ....\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtGui/qapplication.h:130: note: QApplication::QApplication(int&, char**, QApplication::Type, int)
    ....\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtGui/qapplication.h:129: note: QApplication::QApplication(int&, char**, bool, int)
    ....\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtGui/qapplication.h:128: note: QApplication::QApplication(int&, char**, int)
    @

    It looks like the code completion at least matches the compiler. The online Qt documentation matches the help in QtCreator. So, is this simply a case of incorrect documentation?



  • Note that the first parameter is a reference to int, not an int.



  • Yep, noticed that. Which is also interesting since the code
    @
    QCoreApplication *application = new QApplication(0, 0);
    @

    Compiles on Ubuntu with the Qt Creator installed from the repository and I think Qt 4.7.1. But it shouldn't...

    But that's not the point, the point is the difference between the help file and the actual code.



  • I haven't verified this but the last parameter might be marked as internal (it is even named internal if I recall correctly), which means that it is hidden in the documentation (automatically by the documentation tool) but shown in Qt Creator - which just analyzes the source files and suggests what found.

    Be aware that some of the constructors are available on certain platforms only.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.