Создаю в QTreeWidget делегаты c кнопкой:
C++ (Qt)
QWidget *ButtonDelegate::createEditor(QWidget *parent,
const QStyleOptionViewItem &/* option */,
const QModelIndex & index ) const
{
QToolButton *editor = new QToolButton (parent);
editor->setPopupMode(QToolButton::MenuButtonPopup);
QMenu *menu=new QMenu;
QAction * Act = new QAction(tr("Сформированные фразы"),parent);
menu->addAction(Act);
editor->setMenu(menu);
connect(Act, SIGNAL(triggered()), this, SLOT(emitCommitDataP()));
connect(editor, SIGNAL(clicked()), this, SLOT(emitCommitData()));
return editor;
..........
}
void ButtonDelegate::emitCommitData()
{
QWidget *Box = qobject_cast<QWidget *>(sender());
}
void ButtonDelegate::emitCommitDataP()
{
QWidget *Box = qobject_cast<QWidget *>(sender());
}
Кликаю на кнопку,в слоте emitCommitData Box лпределяется,всё защибись
Если на этой же кнопке вызвать пункт из выпадающего меню,в слоте emitCommitDataP
Box равен 0.
Тут надо как-то хитро определять из какой кнопки было выбрано меню?