2010-10-02 16 views
7

मैं एक कार फोटो प्रदर्शित करना चाहता हूं। लोड होने के बाद
, उपयोगकर्ता कीबोर्ड पर कुंजी दबाकर कार को स्थानांतरित कर सकता है।
जब वह "ऊपर तीर" दबाता है, तो कार ऊपर की तरफ बढ़ेगी।
फोटो दिखाने के लिए मुझे किस मेथोस का उपयोग करना चाहिए। Qlabel.setpixmap ??
नीचे दिया गया कोड एक नए विजेट पर छवि दिखाता है, लेकिन मैं इसे अपने मुख्यविंडो पेज पर दिखाना चाहता हूं।
मुझे क्या करना चाहिए?क्यूटी: विजेट पर छवि दिखाएं

void MainWindow::showIt() 
{ 
    QLabel *image = new QLabel(); 
    image->setPixmap(QPixmap("car.jpg")); 
    image->show(); 
    update(); 
} 

MainWindow::MainWindow(QWidget *parent) : 
     QMainWindow(parent), 
     ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
    showIt(); 
} 

उत्तर

10

यह एक सा लग रहा है आप की तरह क्यूटी लेआउट प्रणाली के साथ खेल कोड लिखने के लिए प्रयास कर रहे हैं
धन्यवाद। यह विशेष रूप से अनुशंसित नहीं है।

उपरोक्त कोड में, आपने छवि को QLabel image पर रखा है, लेकिन आपने अपने मुख्यविंडो पर उस QLabel को नहीं रखा है। ऐसा करने का सबसे आसान तरीका केवल this को QLabel कन्स्ट्रक्टर के पहले तर्क के रूप में पास करना है।

यदि इस प्रकार की एनीमेशन एप्लिकेशन का पूरा बिंदु है, तो मैं या तो ओपनजीएल और corresponding class, या graphics view सिस्टम का उपयोग करने की सलाह दूंगा।

+0

हाँ jkerian धन्यवाद, मैं "इस" में बदल गया। – trante

+0

मैं क्यूटी का उपयोग कर एक साधारण खेल बनाने की योजना बना रहा हूं। लेकिन आपके पुनर्मूल्यांकन के कारण अब मैं QGraphicsView और OpenGL के बारे में पढ़ रहा हूं। क्या आप इन दो (QGraphicsView और OpenGL) की तुलना कर सकते हैं। फायदे क्या हैं, disadv? आपका बहुत बहुत धन्यवाद। – trante

+1

ओपनजीएल काफी जटिल है, और वास्तव में पूर्ण 3 डी डिस्प्ले करने के लिए डिज़ाइन किया गया है। इस माहौल में ओपनजीएल का उपयोग करने में समस्या यह है कि यह उपयोग करने के लिए थोड़ा बोझिल है, और इसमें थोड़ा सीखने की वक्र है। ग्राफिक्स व्यू उपरोक्त लिंक में काफी अधिक वर्णित है, लेकिन अधिकतर इस संदर्भ में उपयोगी है क्योंकि यह आपको सामान्य लेआउट इंजन से अलग करने देता है। – jkerian

1

यदि आप क्यूटी का उपयोग करके 2 डी गेम लिखना चाहते हैं - QPainter क्लास पर एक नज़र डालें। उदाहरण के लिए, यदि आप अपनी गेम विंडो का प्रतिनिधित्व करने वाला एक विजेट चाहते हैं तो आपको इसे QWidget या उसके उप-वर्ग से प्राप्त करना चाहिए और अपने ड्राइंग को करने के लिए पेंटएवेंट (QPaintEvent * ईवेंट) फ़ंक्शन को पुन: कार्यान्वित करना चाहिए। क्यूटी उदाहरणों में QPainter का उपयोग करके ड्राइंग के लिए आप बहुत उपयोगी कोड पा सकते हैं।

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