Я попробовал это, создав минимально-воспроизводимый пример, и я не могу воспроизвести ваше поведение. Если нужно явно установить выбранный элемент, если я хочу добиться вашего описанного поведения.
Я предлагаю вам научиться создавать минимально воспроизводимые примеры, это действительно весело, и в большинстве случаев они потрясающе маленькие и написаны быстро.
#include <QApplication>
#include <QPushButton>
#include <QVBoxLayout>
#include <QTreeWidget>
int main(int argc, char** args) {
QApplication app(argc, args);
auto frame = new QFrame;
frame->setLayout(new QVBoxLayout);
auto widget = new QTreeWidget;
auto btn = new QPushButton("Add");
frame->layout()->addWidget(widget);
frame->layout()->addWidget(btn);
btn->connect(btn, &QPushButton::clicked, [&]() {
auto item = new QTreeWidgetItem;
item->setData(0, Qt::ItemDataRole::DisplayRole, "Item");
widget->addTopLevelItem(item);
// item->setSelected(true); // Order ist important to active selection
});
frame->show();
app.exec();
}