Уважаемый ALL! Помогите новичку в QT!
Есть Qtreview с деревом. При нажатии на конкретную ветку выпадает контекстное меню. Это я сделал.
Но! По нажатию на один из пунктов меню я должен добавить нового потомка к дереву. Через Qpoint получаю позицию где надо отобразить само меню а также из Qpoint получаю QmodelIndex.
Вопрос в том как мне передать этот индекс в функцию добавления потомка, если у QAction в меню есть слот activaded, но нету слота, который передает Qpoint или A QmodelIndex?
Как это реализовать?
ui_mainwindow.h:
QObject::connect(treeView, SIGNAL(customContextMenuRequested(QPoint)), MainWindow, SLOT(showPopup(QPoint)));
mainwindow.cpp:
void MainWindow::showPopup(const QPoint & iPoint)
{
QTreeWidgetItem * item = 0 ;
//item = ui->treeView->itemAt(iPosition) ;
if ( 0 == item )
{
//QMessageBox::information(this, "Popup", "No item selected" ) ;
// Build your menu
QMenu menu(ui->treeView);
if(isDUT(ui->treeView->indexAt(iPoint))){
menu.addAction(ui->actionNew_device);// - а что дальше - не знаю
connect(this, SIGNAL(popupActivated(QModelIndex)), this, SLOT(newDev(QModelIndex )));
//emit popupActivated(ui->treeView->indexAt(iPoint)); // если поместить сюда, то вызывается при выпадении списка, а не при нажатии на меню
}
if(isDevice(ui->treeView->indexAt(iPoint))){
menu.addAction(ui->actionRemove_device);
menu.addAction(ui->actionNew_curve);
}
if(isCurve(ui->treeView->indexAt(iPoint))) menu.addAction(ui->actionRemove_Curve);
qDebug()<<":popuprightclickMenu"; //just to see if activated
menu.exec(ui->treeView->mapToGlobal(iPoint));
}