Gia*_*rlo 5 c++ events qt kde treewidget
我有一个继承QTreeWidget的类.如何找到当前选定的行?通常我会以这种方式将信号连接到插槽:
connect(myButton, SIGNAL(triggered(bool)), this, SLOT(myClick()));
Run Code Online (Sandbox Code Playgroud)
但是,我找不到类似的东西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();
}
}
Run Code Online (Sandbox Code Playgroud)
我还没试过.是唯一的解决方案还是有更简单的方法?
Tho*_*dal 13
尘土飞扬几乎是正确的.但是itemSelectionChanged信号不会告诉您选择了哪个项目.
QList<QTreeWidgetItem *> QTreeWidget::selectedItems() const
Run Code Online (Sandbox Code Playgroud)
会给你所选的项目.
因此,将一个槽连接到itemSelectionChanged信号,然后在树窗口小部件上调用selectedItems()以获取所选项目.
| 归档时间: |
|
| 查看次数: |
24766 次 |
| 最近记录: |