QTreeView selectedIndex проблема, когда мышь перетаскивают

Ниже приведен фрагмент кода для получения выбранной строки (индекса) на QTreeView и прочитайте связанные данные.

Работает нормально. Однако, если я щелкну левой кнопкой мыши по строке и перетащу ее в другой индекс, функция выведет индекс первого щелчка, но я хочу прочитать индекс строки, когда отпущена левая мышь.

Какой сигнал QTreeView мне нужно использовать, чтобы прочитать выбранный индекс, когда щелчок мыши отпущен?

Object::Oject(QVector<QPair<QString, QString> > allItems){

treeView = new QTreeView(Dialog);
treeView->setObjectName(QString::fromUtf8("listView"));
treeView->setGeometry(QRect(0, 0, 221, 481));

QStandardItemModel *standardModel = new QStandardItemModel ;
rootNode = standardModel->invisibleRootItem();

treeView->setIconSize(QSize(40,30));
treeView->setDragEnabled(false);
treeView->setHeaderHidden(true);

treeView->setModel(standardModel);
treeView->expandAll();QVector< QPair <QString, QString > >::Iterator it;
for (it=allItems.begin(); it != allItems.end(); it++){
nItem = new QStandardItem(QString("%1").arg(it->second));
nItem->setEditable(false);
nItem->setDragEnabled(false);
rootNode->appendRow(nItem);
}

QObject::connect(treeView, SIGNAL( clicked(const QModelIndex &)), this, SLOT(getSelectedIndexFcn(const QModelIndex &)));
}

void Object::getSelectedIndexFcn(const QModelIndex &index){
selectedIndexRow = index.row();
selectedIndexIPaddr = index.data().toString();

}

1

Решение

Вы можете попробовать использовать QTreeWidget и его сигнал itemEntered(QTreeWidgetItem*, int) или же itemSelectionChanged(),

0

Другие решения


По вопросам рекламы [email protected]