QTreeWidget избежать выбора по умолчанию нового элемента - PullRequest
0 голосов
/ 28 июня 2019

Таким образом, QTreeWidget, по-видимому, по умолчанию выбирает самый новый элемент, вставленный в него.Есть ли способ избежать такого поведения?Я посмотрел на документацию, но ничего не смог найти.Вместо этого я бы хотел сосредоточиться на первом элементе, вставленном в QTreeWidget.

Вот как я вставляю вещи в свое дерево

void insertIntoTree(QTreeWidget *tree)
for (int i = 0; i < streams.count(); i++) {
            tree->setSelectionMode(QAbstractItemView::SingleSelection);
            quint64 key = streams.keys().at(i);
            const StreamInfo &info = streams.value(key);

            QTreeWidgetItem* parent = makeItem(StreamId::calcName(key), true);
            tree->addTopLevelItem(parent);
            parent->setSelected(true);
}
}

1 Ответ

2 голосов
/ 28 июня 2019

Я попробовал это, создав минимально-воспроизводимый пример, и я не могу воспроизвести ваше поведение. Если нужно явно установить выбранный элемент, если я хочу добиться вашего описанного поведения.

Я предлагаю вам научиться создавать минимально воспроизводимые примеры, это действительно весело, и в большинстве случаев они потрясающе маленькие и написаны быстро.

#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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...