Название: QTreeWidget Отправлено: kadr от Август 19, 2010, 12:29 У меня есть пару вопросов:
1. Есть 2 QTreeWidget, в них загружаются все содержимое разных директорий, при входе в директорию там появляется итем с таким содержимым - .., надо что бы эта строка всегда была наверху, не зависимо от сортировки? 2. Имеется кнопка просмотр, при нажатии на которую в блокноте открывается текущий документ, как задать условие, по которому будет определятся в каком поле(QTreeWidget) сейчас стоит активный курсор, одним словом из какого поля нужно открывать файл? Название: Re: QTreeWidget Отправлено: Авварон от Август 19, 2010, 12:36 1)
flags QDir::Filters flags QDir::SortFlags 2) SelectionModel, SelectedIndexes, QFileSystemModel::path(QModelIndex) Название: Re: QTreeWidget Отправлено: kadr от Август 19, 2010, 14:47 Мне не надо фильтровать и сортировать, надо что бы наряду с другими файлами и папками эти 2 точку (..) были на самом верху, притом в QTreeWidget включена сортировка.
Название: Re: QTreeWidget Отправлено: Авварон от Август 19, 2010, 14:53 блин, мне казалось что это можно указать... А что дает QDir::LocaleAware? попробуй отнаследоваться от модели и переопределить sort
Название: Re: QTreeWidget Отправлено: kadr от Август 19, 2010, 15:21 Как вот это можно указать, мне надо что бы сортировать можно было по нажатию мышкой на заголовке, например по Имени или типу и тд. А эти 2 точку не должны при этом сортироваться, постоянно быть наверху, ну как в тотоле!
Может быть в свойствах QTreeWidget есть возможность выставить, что бы .. были всегда наверху. Название: Re: QTreeWidget Отправлено: kadr от Август 20, 2010, 07:01 2) SelectionModel, SelectedIndexes, QFileSystemModel::path(QModelIndex) Я может быть не правильно выразился, как определить какой элемент в данный момент имеет фокус, активен. Название: Re: QTreeWidget Отправлено: Авварон от Август 20, 2010, 08:28 SelectionModel
Название: Re: QTreeWidget Отправлено: kadr от Август 20, 2010, 09:06 SelectionModel Я никак не врюблюсь как с ним работать, можно маленько поконкретнее.Да и еще не подскажите, как заставить в QTreeWIdget при нжатии на кнопку, выделение перемещаться на один уровень вниз, то есть у меня выделен один итем, при нажатии на кнопку выделение переходит на другой итем? Название: Re: QTreeWidget Отправлено: Авварон от Август 20, 2010, 09:30 эхх
Код: { Название: Re: QTreeWidget Отправлено: crossly от Август 20, 2010, 11:35 а чем продиктовано использование QTreeWidget??
Название: Re: QTreeWidget Отправлено: kadr от Август 20, 2010, 12:32 а чем продиктовано использование QTreeWidget?? Нужно работать в файловой системой, как в файловом менеджере.Название: Re: QTreeWidget Отправлено: crossly от Август 20, 2010, 12:47 дык QFileSystemModel + QTreeView избавит от лишнего геморроя...
Название: Re: QTreeWidget Отправлено: Авварон от Август 20, 2010, 12:53 хех, а слона-то я и не заметил:) думал у него model-based
Название: Re: QTreeWidget Отправлено: kadr от Август 20, 2010, 13:02 дык QFileSystemModel + QTreeView избавит от лишнего геморроя... А я использую QTreeWidget!Название: Re: QTreeWidget Отправлено: Авварон от Август 20, 2010, 13:29 да, 1й строчкой setRootIndex
Название: Re: QTreeWidget Отправлено: crossly от Август 20, 2010, 14:08 Согласен, QTreeView покруче будет, но мне не нравиться у него вид, как его можно изменить и вообще можно ли это? Мне нужно что бы не ввиде дерева была, а ввиде подробного списка. послушайте... вы перед тем как постить документацию читать пробовали... ?? по вопросу... setRootIsDecorated(false)Название: Re: QTreeWidget Отправлено: kadr от Август 20, 2010, 15:28 Согласен, QTreeView покруче будет, но мне не нравиться у него вид, как его можно изменить и вообще можно ли это? Мне нужно что бы не ввиде дерева была, а ввиде подробного списка. послушайте... вы перед тем как постить документацию читать пробовали... ?? по вопросу... setRootIsDecorated(false)Помоги разобраться с этим куском кода, почему то при выполнении его возникает ошибка и приложение закрывается. Код: if (event->type() == QEvent::KeyPress) Код: ASSERT: "index.model() == q" in file dialogs\qfilesystemmodel.cpp, line 1270 Название: Re: QTreeWidget Отправлено: crossly от Август 20, 2010, 16:02 что вы пытаетесь сделать объясните...
PS: что касается кода... он заработает только при оч удачном расположении звезд на небе.... Название: Re: QTreeWidget Отправлено: kadr от Август 22, 2010, 14:51 я отлавливаю нажатие кнопки enter и затем проверяю, является ли текущая строка, а точнее содержимое текущего итема, папкой или файлом, если файл, то выйте из функции, иначе зайти в текущую директорию.
Код: bool MainWindow::eventFilter(QObject *obj, QEvent *event) Название: Re: QTreeWidget Отправлено: crossly от Август 22, 2010, 15:01 во первых .... вы создаете в фильтре новую модель... которая абсолютно никакого отношения к вашей модели и вью не имеет.... я так полагаю это и есть источник сегфолта... во вторых не проще ли воспользоваться сигналом activated... и в третьих... воспользоваться все же моим советом и начать читать документацию... :)
Название: Re: QTreeWidget Отправлено: kadr от Август 22, 2010, 16:08 во первых .... вы создаете в фильтре новую модель... которая абсолютно никакого отношения к вашей модели и вью не имеет.... я так полагаю это и есть источник сегфолта... во вторых не проще ли воспользоваться сигналом activated... и в третьих... воспользоваться все же моим советом и начать читать документацию... :) Хорошо, спасибо за совет!Название: Re: QTreeWidget Отправлено: kadr от Август 23, 2010, 15:04 Я так и не услышал ответ на вопрос- как мне определить, как из 2 QTreeView в данный момент активен, поясняю:
Есть 2 TreeView, перход между ними осуществляется табом и кликом мыши, так же есть кнопка при нажатии на которую должно происходить следующее, берется полный путь текущей записи, в моем случае это текстовый файл, и открывается в блокноте.Так то все работет, но файл открывается постоянно один и тотже из первого TreeView-а. Как мне определить в каком TreeView-е сейчас находиться курсор? Код: QItemSelectionModel *selectionModel = view->selectionModel(); Название: Re: QTreeWidget Отправлено: crossly от Август 23, 2010, 15:06 hasFocus()
Название: Re: QTreeWidget Отправлено: Авварон от Август 23, 2010, 15:12 QApplication::focusWidget
Название: Re: QTreeWidget Отправлено: kadr от Август 23, 2010, 15:44 hasFocus() Вот спасибо!Название: Re: QTreeWidget Отправлено: crossly от Август 23, 2010, 16:19 и опять же... документация...
Название: Re: QTreeWidget Отправлено: kadr от Август 24, 2010, 09:11 помогите разобраться, хочу создать новую папку и не пойму что ему надо.
mkdir ( const QModelIndex & parent, const QString & name ) Код: model_l->mkdir(?,filename); У меня есть QTreeView - ui->left_pole QFileSystemModel *model_l; В справке ничего толком нет, в инете тоже ничего не нашел! Название: Re: QTreeWidget Отправлено: crossly от Август 24, 2010, 09:23 ну если в справке нету... то нам откуда знать... :))... читайте книги товарисч... я бы на вашем месте начал с c++... потом потиху Бланшета, Шлее
Название: Re: QTreeWidget Отправлено: kadr от Август 24, 2010, 09:28 Спсб!
Название: Re: QTreeWidget Отправлено: crossly от Август 24, 2010, 09:35 ну а вообще если хотите посмотреть на эффект... попробуйте ui->left_pole->currentIndex() или ui->left_pole->currentIndex()->parent() к примеру... желательно их конечно же на валидность проверить...
Название: Re: QTreeWidget Отправлено: kadr от Август 24, 2010, 15:46 ну а вообще если хотите посмотреть на эффект... попробуйте ui->left_pole->currentIndex() или ui->left_pole->currentIndex()->parent() к примеру... желательно их конечно же на валидность проверить... ui->left_pole->currentIndex() - это не работает.ui->left_pole->currentIndex()->parent() - а это работает! Название: Re: QTreeWidget Отправлено: kadr от Август 25, 2010, 12:23 Помогите, мне нужно рекурсивно считывать содержимое папок, для дальнейшего копирования этого содержимого. Я накатал кое какой алгоритм, но он не правильно отрабатывает.
Код: QStringList Linux_Comander::scanfolder(QString path) Название: Re: QTreeWidget Отправлено: Kolobok от Август 25, 2010, 13:52 QDirIterator?
Название: Re: QTreeWidget Отправлено: kadr от Август 25, 2010, 15:47 А есть в Qt какая нибудь функция, которая может скопировать всю папку с вложенными папками и файлами, челиком? ???
Название: Re: QTreeWidget Отправлено: crossly от Август 25, 2010, 15:55 а может меда на блюдечки... ??:)
Название: Re: QTreeWidget Отправлено: kadr от Август 26, 2010, 07:01 а может меда на блюдечки... ??:) Значит нет!Название: Re: QTreeWidget Отправлено: kadr от Август 26, 2010, 15:58 Вот код для рекурсивного копирования файлов и подкаталогов!
Код: void Linux_Comander::CopyFolder(QString strFrom, QString strTo) Название: Re: QTreeWidget Отправлено: kadr от Август 27, 2010, 07:24 Народ помогите разобраться, у меня есть алгоритм рекурсивного удаления папок вместе с их содержимым, работает впринципе нормально, но вот проблема, если перед удалением зайти в удаляемый каталог, то при удалении он пишет:
Код: QFileSystemWatcher: FindNextChangeNotification failed!! (???????? ? ???????.) Код: bool Linux_Comander::clearAndRemoveDirectory(QString dir) |