2010-10-02 35 views
7

.
yüklendikten sonra, kullanıcı klavyedeki tuşlara basarak aracı taşıyabilir.
"yukarı ok" a bastığında, araç yukarı doğru hareket edecektir.
Fotoğrafı göstermek için hangi yöntemleri kullanmalıyım? Qlabel.setpixmap ??
Aşağıdaki kod, yeni bir parçacıktaki resmi gösterir, ancak ana sayfamda göstermek istiyorum.
Ne yapmalıyım? Eğer Qt düzen sistemi ile oyun kod yazmak çalışıyorsanız gibi biraz sondaj oluyorQt: Resmi bir widget resmi olarak göstermek istiyorum

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(); 
} 

cevap

10


teşekkür ederiz. Bu özellikle tavsiye edilmez.

Yukarıdaki kodunuzda, görüntüyü QLabel image ürününe yerleştirdiniz, ancak bu QLabel'i ana pencereye yerleştirmediniz. Bunu yapmanın en kolay yolu, QLabel yapıcısının ilk argümanı olarak this'u geçmek.

Bu tür bir animasyon, uygulamanın tüm noktasıysa, OpenGL ve corresponding class veya 10 sistemini kullanmanızı öneririm.

+0

Evet jkerian teşekkür ederim, ben "bu" olarak değiştirdim. – trante

+0

Qt kullanarak basit bir oyun yapmayı planlıyorum. Ama senin reccomendation nedeniyle şimdi QGraphicsView ve OpenGL hakkında okuyorum. Bu ikisini (QGraphicsView ve OpenGL) karşılaştırabilir misiniz? Avantajları nelerdir, dezavantaj? Çok teşekkür ederim. – trante

+1

OpenGL önemli ölçüde daha karmaşıktır ve gerçekten de tam ekran 3D görüntü için tasarlanmıştır. Bu ortamda OpenGL kullanmayla ilgili problem, kullanmanın biraz zahmetli olması ve bir öğrenme eğrisine sahip olmasıdır. GraphicsView, yukarıdaki bağlantıda hemen hemen açıklanmaktadır, ancak bu bağlamda çoğunlukla yararlıdır çünkü normal düzen motorlarından kurtulmanızı sağlar. – jkerian

1

Bir 2D oyun yazmak istiyorsanız, Qt kullanarak - QPainter sınıfına bir göz atın. Örneğin, oyun pencerenizi temsil eden bir widget'ınız varsa, bunu bir QWidget'den miras almalı veya alt sınıfınızı çizmeli ve çiziminizi gerçekleştirmek için paintEvent (QPaintEvent * olayı) işlevini yeniden düzenlemelisiniz. Qt örneklerinde QPainter kullanarak çizim yapmak için kullanışlı bir çok kod bulabilirsiniz.