QWidget: Must construct a QApplication before a QPaintDevice



  • in main:

    Something w;
    w.show();

    in Something.cpp

    Something::Something()
    {
    ui.setupUi(this);
    ...
    }

    Gruß



  • Hi an alle,

    einfach die Zeilen

    QT_BEGIN_NAMESPACE

    und

    QT_END_NAMESPACE

    auskommentieren (in allem Header-Files).

    Greetz



  • hab das auch gemacht im compilierten QT alle

    QT_BEGIN_NAMESPACE und QT_END_NAMESPACE

    gelöscht bringt immer noch nichts

    oder muss ich das gesamte qt neu kompilieren???

    Gruß Matthias



  • Zunaechst muss ich darauf hinweisen dass ich normalerweise die kommerzielle Version von Qt4 und Visual Studio 2005 benutze.
    Ich habe also die Open-Source-Edition von Qt 4.4.3 geladen und im Visual Studio Command Prompt per configure & nmake kompiliert.
    Daraufhin habe ich das OpenGL-Beispiel im Verzeichnis examples\opengl\hellogl (war schon kompiliert, darum vorher mit "nmake clean" aufgeraeumt) ebenfalls im Command-Prompt (um die Visual-Studio-Integration der kommerziellen Version zu umgehen) kompiliert:
    - qmake (erzeugt Makefile aus der beiliegendem .pro-Datei)
    - nmake
    Das Beispiel laeuft fehlerfrei. 😕

    Erzaehlt Dir denn "configure" sowas in der Art?

    QMAKESPEC...................win32-msvc2005 (detected)
    Architecture................windows
    Maketool....................nmake
    Debug symbols...............yes
    Accessibility support.......yes
    STL support.................yes
    Exception support...........yes
    RTTI support................yes
    MMX support.................yes
    3DNOW support...............yes
    SSE support.................yes
    SSE2 support................yes
    IWMMXT support..............no
    OpenGL support..............yes
    Direct3D support............no
    OpenSSL support.............no
    QtDBus support..............no
    QtXmlPatterns support.......yes
    Phonon support..............no
    WebKit support..............yes
    Qt3 compatibility...........yes



  • Hallo,

    nun funktioniert es

    ich habe alle

    QT_BEGIN_NAMESPACE

    und

    QT_END_NAMESPACE

    gelöscht und neu kompiliert nun klappt es
    vielen vielen Dank! für den nützlichen Beitrag

    Gruß Matthias A



  • Hi,

    ich greife diesen alten Thread mal auf weil ich das eingangs angesprochene Problem auch habe - Ich frage mich nur was das auskommentieren des Qt namespace bringt, kann das jemand erklären?

    Gruß,



  • in keinen der QT-Beispiele wird besagtes Makro verwendet... das findet sich nur in den QT-eigenen Dateien (wo man nichts rumbasteln sollte, wenn man nicht weiß, was man tut).

    Wie kommt ihr also drauf, dass bei euch zu verwenden?

    Auch das Beispiel des OP steht so weder im assistant, noch im Quellcode...



  • Genau darum frage ich.



  • apoc333 schrieb:

    Genau darum frage ich.

    warum?

    du fragst, weil man es nicht verwenden soll?

    Dazu müsstest du erstmal verraten, warum du es verwendest...



  • Leider verstehe ich Deine Rückfragen nicht, weil:

    a) Ich geschrieben habe, dass ich das gleiche Problem habe wie zu Beginn des Threaeds erwähnt habe (=QApplication wird erzeugt und ein danach erzeugtes Widget "findet" diese nicht und ich verwende Qt 4.4.3)
    b) Ich genau nicht pauschal solche Eingriffe im Qt Source durchführen möchte wie es hier angeraten wurde, sondern darum
    c) gefragt habe, was das bewirken soll - damit ich Rückschlüsse ziehen kann, wo das Problem in meinem Source liegt.

    Gruß,


Anmelden zum Antworten