#include "dialog_imageinfo.h" #include "ui_dialog_imageinfo.h" Dialog_ImageInfo::Dialog_ImageInfo(const QStringList& file_keys, const QStringList& file_values, const QStringList& image_keys, const QStringList& image_values, QWidget *parent) : QDialog(parent) , ui(new Ui::Dialog_ImageInfo) , m_file_keys(file_keys) , m_file_values(file_values) , m_image_keys(image_keys) , m_image_values(image_values) { ui->setupUi(this); this->resize(600,400); ui->treeWidget->header()->resizeSections(QHeaderView::ResizeToContents); ui->treeWidget->setColumnCount(2); ui->treeWidget->setColumnWidth(0,180); ui->treeWidget->setAlternatingRowColors(true); ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("ok")); //set primery directory QStringList list; list<treeWidget,list); ui->treeWidget->addTopLevelItem(class1); list.clear(); list<treeWidget,list); ui->treeWidget->addTopLevelItem(class2); QList list_class; //set class1 secondary directory m_file_values = makeList(m_file_keys, m_file_values); for(int i=0;i< m_file_keys.size();i++) { QStringList list_string; list_string<< m_file_keys[i]<< m_file_values[i]; QTreeWidgetItem *class1_child = new QTreeWidgetItem(class1, list_string); list_class.append(class1_child); } class1->addChildren(list_class); //set class2 secondary directory list_class.clear(); m_image_values = makeList(m_image_keys, m_image_values); for(int i=0;i< m_image_keys.size();i++) { QStringList list_string; list_string<< m_image_keys[i]<< m_image_values[i]; QTreeWidgetItem *class2_child = new QTreeWidgetItem(class2, list_string); list_class.append(class2_child); } class2->addChildren(list_class); ui->treeWidget->expandAll(); } Dialog_ImageInfo::~Dialog_ImageInfo() { delete ui; } QStringList Dialog_ImageInfo::makeList(const QStringList& keys, QStringList values) { if (keys.size() < values.size()) return values.mid(0, keys.size()); else if (keys.size() > values.size()) { for (int i = 0; i < keys.size() - values.size(); i++) values.append(tr("None")); } return values; }