Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/95: Рейтинг темы: голосов - 95, средняя оценка - 4.84
5 / 5 / 1
Регистрация: 08.01.2011
Сообщений: 46
1

Контекстное меню

27.01.2011, 22:42. Показов 19408. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые пользователи форума. Столкнулся с проблемой.

Имеется виджет treeView, который отображает дерево каталогов:
C++ (Qt)
1
2
3
4
5
6
7
8
void MainWindow::directoryViewer()
{
    QFileSystemModel *treeViewModel = new QFileSystemModel;
    treeViewModel->setRootPath(QDir::currentPath());
    QTreeView *tree = new QTreeView();
    tree->setModel(treeViewModel);
    ui->treeView->setModel(treeViewModel);
}
Нужно для него создать контекстное меню с функциями: "Открыть", "Переименовать", "Удалить"... Ну и т.д. Кто может и знает, подскажите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2011, 22:42
Ответы с готовыми решениями:

Контекстное меню
Здравствуйте! Помогите пожалуйста подключить контекстное меню к виджету( ни в какую не...

Контекстное меню Qt
Решила сделать контекстное меню(в нем есть удалить, добавить после ячейки. перед ячейкой). И как ...

Qmenu контекстное меню
Как сделать контекстное меню для treewidget при нажатии правой кнопки мыши появлялось контекстное...

Контекстное меню в QTableWidget
Делаю всё как в примере...

23
5 / 5 / 1
Регистрация: 08.01.2011
Сообщений: 46
31.01.2011, 03:11  [ТС] 21
Author24 — интернет-сервис помощи студентам
Сделал функцию создания файла. Он создается в папке проекта. А мне нужно, чтобы я через treeView, мог выбрать текущую папку и создать в ней.

Ниже привожу пример с созданием папки. Тут разобрался. Ничего сложного.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void MainWindow::mkdir()
{
    QFileSystemModel *treeViewModel = new QFileSystemModel;
    treeViewModel->setRootPath(QDir::currentPath());
    QTreeView *tree = new QTreeView();
    tree->setModel(treeViewModel);
 
    QModelIndex index = ui->treeView->currentIndex();
    if(!index.isValid())
    {
    return;
    }
 
    QString dirName = QInputDialog::getText(this, tr("Создание папки"), tr("Название папки"));
 
    if(!dirName.isEmpty())
    {
    if(!treeViewModel->mkdir(index,dirName).isValid())
    {
        QMessageBox::information(this, tr("Создание директории"), tr("Папка не создана!"));
    }
    }
}


Вот пример с файлом. Тут нужен индекс, по которому будет определяться активный каталог, как его сделать ума не приложу. Если кто-нибудь знает, подскажите, пожалуйста.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void MainWindow::mkfile()
{
    QFileSystemModel *treeViewModel = new QFileSystemModel;
    treeViewModel->setRootPath(QDir::currentPath());
    QTreeView *tree = new QTreeView();
    tree->setModel(treeViewModel);
 
    QModelIndex index = ui->treeView->currentIndex();
    if(!index.isValid())
    {
    return;
    }
 
    QString nameFile = QInputDialog::getText(this, tr("Создание Файла"), tr("Название Файла"));
 
    if(!nameFile.isEmpty())
    {
    QFile file(nameFile);
    file.open(QIODevice::Append | QIODevice::Text);
    file.close();
    }
}
0
377 / 357 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
31.01.2011, 08:12 22
думаю нужно соединить сигнал clicked (const QModelIndex & index) объекта treeView со слотом, принимающим этот QModelIndex &index - это и будет нужный индекс
0
5 / 5 / 1
Регистрация: 08.01.2011
Сообщений: 46
31.01.2011, 21:06  [ТС] 23
Можно поподробней?
0
377 / 357 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
31.01.2011, 21:12 24
Цитата Сообщение от belirafor Посмотреть сообщение
Тут нужен индекс, по которому будет определяться активный каталог, как его сделать ума не приложу. Если кто-нибудь знает, подскажите, пожалуйста
тебе был нужен индекс каталога, на котором ты вызываешь контекстное меню и выбираешь команду создать файл, индекс я тебе дал
1
31.01.2011, 21:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2011, 21:12
Помогаю со студенческими работами здесь

Не работает контекстное меню на listWidget
У меня есть в форме listWidget. В конструкторе окна я привязываю customContextMenuRequested к моей...

Интеграция в контекстное меню Проводника
Как сделать интеграцию программы в контекстное меню операционной системы, которое возникает при...

Не исчезает контекстное меню трея
Всем привет! Вопрос следующий В трее висит иконка На неё повешено контекстное меню Код...

Контекстное меню относительно окна
Добрый день. Подскажите пожалуйста, как вывести контекстное меню относительно координат окна... ...

QGraphicsView и QGraphicsItem контекстное меню
Имеется класс, унаследованный от QGraphicsView. В нем переопределено событие contextMenuEvent. На...

QToolBar. Как убрать контекстное меню
В нём по дефолту есть конт. меню с галкой, которая убирает тулбар. Мне нужно, чтобы этого меню и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru