I have a class that inherits QTreeWidget. How can I find the currently selected row? Usually I connect signals to slots this way:
connect(myButton, SIGNAL(triggered(bool)), this, SLOT(myClick()));
However, I can't find anything similar for QTreeWidget->QTreeWidgetItem
.
The only way I found is to redefine the mousePressEvent of the QTreeWidget class like this:
void MyQTreeWidget::mousePressEvent(QMouseEvent *e){
QTreeView::mousePressEvent(e);
const QModelIndex index = indexAt(e->pos());
if (!index.isValid())
{
const Qt::KeyboardModifiers modifiers = QApplication::keyboardModifiers();
if (!(modifiers & Qt::ShiftModifier) && !(modifiers & Qt::ControlModifier))
clearSelection();
}
}
I didn't try it yet. Is the only solution or is there any easier way?
Using the itemClicked() signal will miss any selection changes made using the keyboard. I'm assuming that's a bad thing in your case.