Я пытаюсь узнать, когда пользователь выбирает украшение элемента, потому что я пытался реализовать один щелчок развернуть/свернуть QTreeview, и украшение теперь ничего не делает. Он не расширяет или не сбрасывает элемент, как если бы я нажимал на элемент, который он работает правильно.Как узнать, что элемент оформления QTreeView щелкнул
void MyTreeView::mousePressEvent(QMouseEvent *event)
{
QTreeView::mousePressEvent(event);
if (event->button() == Qt::LeftButton)
{
QModelIndex index = indexAt(event->pos());
isExpanded(index) ? collapse(index) : expand(index);
}
}
Проблема в том, что при выборе отделки она входит в условие if. Если это не так, все работает нормально.
Я не знаю, должен ли я блокировать действие украшения или иметь условие в выражении if.
Как я узнаю, что выбрано украшение, а не элемент или как заблокировать действие украшения?
ли вы имеете в виду, что вы хотите, чтобы проверить, когда значок нажата? –
Треугольник слева, описывающий предмет с детьми. Нажатие на нее расширяет элемент и показывает детей. Я хочу знать, что эта штука нажата, потому что теперь, когда она есть, она дает мне индекс элемента, и я не знаю, откуда происходит событие нажатия мыши. Таким образом, он расширяется, сворачивается или сворачивается и расширяется. – user3842408