我有一个继承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信号不会告诉您选择了哪个项目.
QListQTreeWidget::selectedItems() const
会给你所选的项目.
因此,将一个槽连接到itemSelectionChanged信号,然后在树窗口小部件上调用selectedItems()以获取所选项目.