Qt - QWidget: kann Nicht erstellen Sie ein QWidget, wenn keine GUI verwendet wird
Ich versuche, führen Sie eine einfache Qt
Programm, und wenn Sie dies tun, bekomme ich ein Konsole-Fenster zu erwähnen: QWidget: Cannot create a QWidget when no GUI is being used
, und die zweite Zeile This application has requested the Runtime to terminate.....
, und die .exe
Datei so nicht mehr funktioniert.
Meine .pro
- Datei sieht wie folgt aus:
#-------------------------------------------------
#
# Project created by QtCreator 2011-04-02T07:38:50
#
#-------------------------------------------------
QT += core
QT += gui
TARGET = Hello
CONFIG += console
CONFIG += qt
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
Irgendwelche Ideen?
Dank.
InformationsquelleAutor Simplicity | 2011-04-02
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist nicht mit diesem
.pro
; es ist wahrscheinlich inmain.cpp
. Qt erfordert das erstellen einer QApplication vor der Erstellung eines QWidget Unterklassen (sowie einigen anderen Klassen, wie QPixmap). Ihremain
Funktion sollte beginnen mit der Zeile:und wird wahrscheinlich am Ende mit einer Zeile wie:
Zwischen diesen anrufen, sollten Sie sich und zeigen Sie Ihre wichtigsten Fenster.
InformationsquelleAutor Daniel Gallagher
Fand ich, dass Sie es tun können, mit einer Qt-Konsole-Projekt, aber natürlich hat er nicht die Funktionalität des console-Programm, wenn Sie fertig sind mit meinen Bearbeitungen.
Zunächst müssen Sie exchange
#include <QtCoreApplication>
mit#include <QApplication>
in Ihremmain.cpp
(wo Sie die Anwendung starten)In der
main(int,char**){
exchange
QCoreApplication a(argc, argv);
mitQApplication a(argc, argv);
zwischen QApplication und zurückgeben.exec haben Sie Ihr widget und andere gui-bezogene Sachen
und in die Ende Sie verwenden
return a.exec();}
InformationsquelleAutor OMG-1
Ich denke, ich habe gefunden, wo das Problem ist.
Da bin ich mit
Qt Creator
, und wenn Sie ein neues Projekt erstellen, ich war die WahlQt Console Application
stattQt Gui Application
.Noch ein Hinweis: die GUI benötigt
QApplication
undQT+=gui
, und eine Konsole erfordert die Verwendung vonQCoreApplication
undCONFIG+=console
. Sie können nicht eine Konsole-display mitQT+=gui
egal, wie Sie eine Verknüpfung. (Haben Sie zwei ausführbare Dateien, oder einen Anruf auf der anderen, oder der Umsetzung Ihrer eigenen Konsole-wie die Sache aus Ihrer GUI-app.)Mein problem war das gleiche. Durch das ändern der "QtCoreApplication" zu "QtApplication", es funktionierte.
InformationsquelleAutor Simplicity
"QWidget: kann Nicht erstellen Sie ein QWidget, wenn keine GUI verwendet wird," passiert, wenn Sie die Anwendung nicht QApplication-Instanz.
Von Qt-Doku:
InformationsquelleAutor INeedMySpace
Aus der docs,
die QApplication - Klasse verwaltet die GUI-Anwendung für die Ablaufsteuerung und die wichtigsten Einstellungen während
die QCoreApplication - Klasse stellt ein Ereignis-Schleife für die Konsole Qt-Anwendungen
Ich hatte das gleiche problem, die Standard-QT-Konsole-App nutzt die QCoreApplication anstelle des QApplication, um die Anwendung auszuführen.
Hier ist, was ich getan habe damit es funktioniert
Und ich änderte nichts in meiner Projekt-Datei
InformationsquelleAutor user2664843