Pertanyaan Qt: tampilkan gambar di widget


saya ingin menampilkan foto mobil.
setelah memuat, pengguna dapat memindahkan mobil dengan menekan tombol pada keyboard.
ketika dia menekan "panah atas", mobil akan bergerak ke atas.
metode mana yang harus saya gunakan untuk menampilkan foto. Qlabel.setpixmap ??
Kode di bawah ini menunjukkan gambar pada widget baru, tetapi saya ingin menampilkannya di halaman mainwindow saya.
Apa yang harus saya lakukan?
Terima kasih

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

7
2017-10-02 17:08


asal


Jawaban:


Ini terdengar agak seperti Anda mencoba menulis kode permainan dengan sistem tata letak Qt. Ini tidak terlalu disarankan.

Dalam kode Anda di atas, Anda telah menempatkan gambar pada QLabel image, tetapi Anda belum menempatkan QLabel di mainwindow Anda. Cara termudah untuk melakukannya adalah hanya lewat this sebagai argumen pertama untuk konstruktor QLabel.

Jika jenis animasi ini adalah inti dari aplikasi, saya sarankan menggunakan OpenGL dan kelas yang sesuai, atau tampilan grafis sistem.


10
2017-10-02 18:31



Jika Anda ingin menulis game 2D, menggunakan Qt - lihat kelas QPainter. Misalnya, jika Anda ingin memiliki satu widget yang mewakili jendela permainan Anda, Anda harus mewarisinya dari fungsi QWidget atau subclass dan reimplement paintEvent (QPaintEvent * event) untuk melakukan gambar Anda. Anda dapat menemukan banyak kode yang berguna untuk menggambar menggunakan QPainter dalam contoh Qt.


1
2017-10-11 18:43