2016-03-22 3 views
0

Я хочу отображать много изображений в моем приложении Qt, для этого я создал кнопку, которая при нажатии будет иметь доступ к пользователю компьютера и добавлять изображения. Моя проблема в том, что я не знаю, как отображать эти изображения в приложении.отображает много изображений с Qt

Вот мой код:

void Mainwindow::on_pushButton_pressed() 
{ 
    QStringList fileName = QFileDialog::getOpenFileNames(this,tr("Open Image"), 
          "C:/qt-win-opensource-src-4.5.0/bin/", 
          tr("Image Files(*.png *.jpg *.bmp *.avi *.gif)")); 

    iterator = new QStringListIterator(fileName); 
    label = new QLabel; 
    if(iterator->hasNext()) 
    { 
     label->clear(); 
     label->setPixmap(QPixmap(iterator->next())); 
     label->show(); 
    } 

    } 
+0

Вы можете использовать, например, QGraphicsView и QGraphicsScene для отображения ваших изображений - или просто простой макет для виджетов. Зависит от того, чего вы хотите. – user2061057

+0

Есть достаточно примеров для показа изображений в качестве меток. О чем позаботиться: только png поддерживается по умолчанию, для других форматов см. Http://stackoverflow.com/a/12800429/104774 – stefaanv

ответ

1

Вы должны использовать область прокрутки для тех изображений, которые будут отображаться. Вы можете установить макет в зависимости от того, как вы хотите, чтобы эти изображения были организованы и отобразили их с использованием экземпляров QLabel.

iterator = new QStringListIterator(fileName); 
label = new QLabel; 
if(iterator->hasNext()) 
{ 
    label->clear(); 
    label->setPixmap(QPixmap(iterator->next())); 
    ui->scrollArea->layout()->addWidget(label); // need to add a scroll area widget in your ui file 
               // and set layout to it (horizontal, vertical, grid etc.) 
} 

Этот способ не должен быть проблемой, и ваши ярлыки должны отображаться правильно.