我有一个继承 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();
}
}
我还没试过。是唯一的解决方案还是有更简单的方法?
最佳答案
Dusty 几乎是正确的。但是 itemSelectionChanged 信号不会告诉您选择了哪个项目。
QList<QTreeWidgetItem *> QTreeWidget::selectedItems() const
会给你选择的项目。
因此,将槽连接到 itemSelectionChanged 信号,然后调用树形小部件上的 selectedItems() 以获取所选项目。
关于c++ - 如何在 QTreeWidget 中找到选定的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/334952/