Я делаю простой проводник файлов, и я столкнулся с некоторыми проблемами с Qt. Я хочу показать пользователю древовидное представление файлов на своем компьютере, но я также хочу иметь возможность выбирать несколько файлов/каталогов и делать что-то с ними позже (путем выбора checkboxes
или множественного выбора с использованием ctrl + левый клик или смещение + левый клик). Я поместил элемент QTreeView
и установил для него модель (QFileSystemModel
). Это дает мне хорошее древовидное представление, но я не могу изменить заголовки (имена столбцов) или добавить собственный столбец с checkbox
в каждой строке (например). Qt является новым для меня, я искал несколько хороших часов для некоторых советов/решений, но ничего не работает с QFileSystemModel
. Есть ли что-нибудь, что я могу сделать, чтобы заставить это работать?Дерево QT, которое позволяет multiselection
Код короток и прост:
QString lPath = "C:/";
QString rPath = "C:/";
leftTree_model = new QFileSystemModel(this);
rightTree_model = new QFileSystemModel(this);
leftTree_model->setRootPath(lPath);
rightTree_model->setRootPath(rPath);
//i have actually 2 tree views that work the same
ui->leftTree->setModel(leftTree_model); //ui->leftTree is the first tree view
ui->rightTree->setModel(rightTree_model); //the second
не могли бы вы расширить свой ответ немного больше? Я получаю режим выбора, сделал это уже. Я получаю наследование ('class treeModel: public QFileSystemModel'), но у меня проблема с конструктором' treeModel' (ошибка: неразрешенный внешний символ ...). Я заменяю 'leftTree_model = новый QFileSystemModel (this);' с 'leftTree_model = new treeModel (this);', но он не работает. – sobol6803
У меня есть еще одна проблема. Эти флажки можно щелкнуть, но они представляют странное поведение. Если я нажму на один флажок, отпустите кнопку мыши и переместите курсор над каждым флажком, все они будут проверены. Здесь у вас есть код: http://ideone.com/Xrrdo9. Что я делаю неправильно? – sobol6803
Это потому, что вы возвращаете одинаковый статус для каждой строки, независимо от элемента, который был проверен: 'return checkstatus;' Как должно отображаться представление, какой флажок для всех из них необходимо проверить? – spiritwolfform