QPixmap getPixmap(QString param1, QString param2){ // тут получаем картинку. В данном случае картинку будем получать из того что первый параметр папка, второй название файла // т.е. к примеру getPixmap("c:/myPicture","abort.png"); // получаем pix = "картинка по пути c:/myPicture/abort.png" QPixmap pix = QPixmap(param1 +"/"+ param2); return pix;}void parseFileAndCreateLabel(){ // строчки из файла QStringList listString; // список лейблов QList<QLabel> listLabel; // разделитель QString separator = "\t"; // цикл по строкам for (int i = 0; i < listString.size() ;i++) { // разбиваем строку по разделителю( в данном случае символ табуляции) QStringList tempData = listString[i].split(separator); // проверка на количество значений. if (tempData.size != 3) { // вывод сообщения об ошибке, берём следующую строку. Но эт чисто для теста, ибо если таких будет много заколебаетесь щелкать :D QMessageBox::alert(this, "Error", QString("Corrupted string") + listString[i] , QMessageBox::Ok); // переходим в начало цикла к следующей строке continue; } // создаём лейбл QLabel* label = new QLabel; // пихаем текст label.setText(tempData[0]); // запрашиваем картинку QPixmap pix = getPixmap(tempData[1],tempData[2]); // пихаем картинку. label->setPixmap(pix); // всё готово, пихаем лейбл в списочек готовых listLabel.append(label); } // цикл по всем лейблам for (int i = 0; i < listLabel.size() ;i++) { // добавляем на форму. Вместо verticalLayout подставляем свой layout который на форме, или свой ui->verticalLayout->addWidget(listLabel[i]); }}
QGridLayout* grid = new QGridLayout; QWidget* widget = new QWidget(this); widget->setLayout(grid); ui->scrollArea->setWidget(widget); grid->addWidget(ui->label1);
C++ (Qt)widget->layout();