У меня есть древовидное представление, в котором я хотел бы отображать файлы, выбранные пользователем через file_dialog.getOpenFileNames(); file_dialog — это QFileDialog. Я создал класс модели:
class File_Display_Model : public QAbstractItemModel
{
Q_OBJECT
private:
QStringList* selected_files_;
public:
explicit File_Display_Model(QObject *parent = nullptr,QStringList* selected_files = nullptr);
int File_Display_Model::columnCount( const QModelIndex & parent ) const
{
selected_files_->count();
}
QVariant File_Display_Model::data(const QModelIndex & index, int role) const
{
if (!index.isValid())
{
return QVariant();
}
else
{
if (role == Qt::DisplayRole) {
if (index.row() == index.column())
{
return 0;
}
else
{
return selected_files_->at(role);
}
}
return QVariant();
}
}
QModelIndex File_Display_Model::index(int row, int column, const QModelIndex & parent ) const
{
/*DUMMY - HERE I JUST DON'T KNOW WHAT TO RETURN*/
return QModelIndex();
}
QModelIndex File_Display_Model::parent(const QModelIndex & index) const
{
return QModelIndex();
}
int File_Display_Model::rowCount( const QModelIndex & parent ) const
{
selected_files_->count();
}
};
И я также предоставил этот класс в качестве модели для просмотра в виде дерева. В этом классе возникла проблема с методом индекса — я не знаю, что вернуть.
Может ли кто-нибудь помочь мне и подсказать, как заставить его работать так, чтобы файлы, выбранные пользователем, отображались в дереве?