Qt - QWidget: Impossible de créer un QWidget lorsqu'aucune interface graphique n'est utilisée
Je suis en train de lancer un simple Qt
programme, et ce faisant, j'obtiens une fenêtre de console de mentionner: QWidget: Cannot create a QWidget when no GUI is being used
et la deuxième ligne This application has requested the Runtime to terminate.....
et la .exe
fichier ainsi les arrêts de travail.
Mon .pro
fichier se présente comme suit:
#-------------------------------------------------
#
# 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
Des idées sur ce que?
Grâce.
source d'informationauteur Simplicity
Vous devez vous connecter pour publier un commentaire.
Le problème n'est pas avec ce
.pro
; il est plus probable dansmain.cpp
. Qt vous oblige à créer un QApplication avant de pouvoir créer un QWidget sous-classes (ainsi que certaines autres classes, tels que QPixmap). Votremain
fonction doit commencer par la ligne:et va probablement finir avec une ligne comme:
Entre ces appels, vous devez créer et afficher votre fenêtre principale.
J'ai trouvé que vous pouvez le faire avec Qt projet Console, mais bien sûr il n'aura pas la fonctionnalité d'un programme de console lorsque vous avez terminé avec mes modifications.
Tout d'abord, vous devez échanger des
#include <QtCoreApplication>
avec#include <QApplication>
dans votremain.cpp
(où vous commencez votre demande)Dans le
main(int,char**){
échange
QCoreApplication a(argc, argv);
avecQApplication a(argc, argv);
et entre QApplication et de retourner une.exec vous avez votre widget et autres gui choses liées
et à la fin vous utilisez
return a.exec();}
Je crois que j'ai trouvé où est la question.
Depuis que je suis en utilisant
Qt Creator
et lors de la création d'un nouveau projet, j'ai été en choisissantQt Console Application
au lieu deQt Gui Application
."QWidget: Impossible de créer un QWidget quand pas de GUI est utilisé" se produit lorsque vous application n'est pas en instance de QApplication.
De Qt docs:
De la documentation,
le QApplication classe gère l'interface graphique de l'application de flux de contrôle et paramètres principaux, tandis que
le QCoreApplication classe fournit une boucle pour la console de Qt applications
J'ai eu le même problème, la valeur par défaut de la Console de QT Application utilise l'QCoreApplication au lieu de la QApplication pour exécuter l'application.
Voici ce que j'ai fait pour le faire fonctionner
Et je n'ai pas à changer quelque chose dans mon dossier de projet