2016-04-30 12 views
5

के बिना QWidget नहीं बना सकता है जब मैं अपनी क्यूटी परियोजना संकलित करता हूं तो त्रुटि नीचे दिखाया गया है?QApplication

QWidget: Cannot create a QWidget without QApplication 

समस्या क्या है?

main.cpp

#include<QApplication> 
#include"MainWindow.h" 

int main(int argc, char *argv[]) 
{ 
    QGuiApplication app(argc, argv); 
    MainWindow w; 
    w.show(); 
    return app.exec(); 
} 

उत्तर

6

यह स्पष्ट है। QWidget रखने के लिए आपको QApplication की आवश्यकता है। QGuiApplication से QApplication बदलें और कोड ठीक ठीक होगा।

#include<QApplication> 
#include"MainWindow.h" 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    MainWindow w; 
    w.show(); 
    return app.exec(); 
} 

आप जानना चाहते हैं "क्यों वहाँ QApplication, QGuiApplication और QCoreApplication की तरह पेड़ मुख्य वर्गों रहे हैं", this देखते हैं। इसे कहते हैं:

QCoreApplication आधार वर्ग, QGuiApplication निपटने खिड़कियों और जीयूआई सामान (गैर विजेट संबंधित, जैसे ओपन या QtQuick) से संबंधित कार्यक्षमता के साथ आधार वर्ग फैली हुई है, QApplication संबंधित कार्यक्षमता के साथ QGuiApplication फैली विजेट को संभालने के लिए।

बीटीडब्ल्यू, क्या यह क्यूटी निर्माता पर उपलब्ध मूल उदाहरण नहीं है? आपको क्यूटी सीखने के लिए एक पुस्तक की ज़रूरत है, और मैं आपको जैस्मीन ब्लैंचेट से क्यूटी 4 (द्वितीय संस्करण) के साथ "सी ++ जीयूआई प्रोग्रामिंग" पढ़ने का सुझाव देता हूं।

Qt Book

+1

QGuiApplication और QApplication के बीच महत्वपूर्ण अंतर इस पुस्तक हालांकि शामिल नहीं होगा, के रूप में यह क्यूटी 4 के बारे में है, और QGuiApplication Qt5 में पेश किया गया था। –

+0

@ फ्रैंकऑस्टरफेल्ड मैंने http://www.qtcentre.org/threads/60203 से QAplication, QGuiAplication और QCoreAplication के बीच अंतर का उल्लेख किया है। क्या आप एक अच्छी Qt5 पुस्तक जानते हैं? – Ho1

4

आप QGuiApplicationQApplication करने के लिए अपने मुख्य में बदलना चाहिए।

QGuiApplication Class Description से:

QWidget आधारित क्यूटी अनुप्रयोगों के लिए,, QApplication बजाय का उपयोग के रूप में यह कुछ QWidget उदाहरणों बनाने के लिए आवश्यक सुविधा प्रदान करता है।

संबंधित मुद्दे