我有一个继承 QTreeWidget 的类。如何找到当前选定的行?
通常我通过这种方式将信号连接到插槽:
connect(myButton, SIGNAL(triggered(bool)), this, SLOT(myClick()));
但是,我找不到类似的东西QTreeWidget->QTreeWidgetItem
。
我发现的唯一方法是重新定义 QTreeWidget 类的 mousePressEvent,如下所示:
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();
}
}
我还没尝试过。是唯一的解决方案还是有更简单的方法?
达斯蒂几乎是正确的。但是 itemSelectionChanged 信号不会告诉您选择了哪个项目。
QList<QTreeWidgetItem *> QTreeWidget::selectedItems() const
将为您提供所选项目。
因此,将插槽连接到 itemSelectionChanged 信号,然后在树小部件上调用 selectedItems() 以获取所选项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)