qt QTreeWidget怎么模拟点击

如题,我想在程序中模拟点击第一个节点的第一个子节点,如何实现

img

首先找到你要点击节点的item。比如下面是获得第一个节点的第一个子节点

auto item = treeWidget->invisibleRootItem()->child(0)->child(0);

然后获取那个节点的Bounding Box

auto rect = treeWidget->visualItemRect(item);

然后构建鼠标点击事件(即MouseButtonPress和MouseButtonRelease),发送给treeWidget

auto pos = rect.center();
QMouseEvent event1(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
QCoreApplication::sendEvent(treeWidget, &event1);
QMouseEvent event2(QEvent::MouseButtonRelease, pos, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
QCoreApplication::sendEvent(treeWidget, &event2);