#include int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget w; auto lay = new QVBoxLayout(&w); auto pb = new QPushButton("Push me!"); lay->addWidget(pb); auto tw = new QTreeWidget; lay->addWidget(tw); tw->setColumnCount(1); for (int i = 0; i < 3; ++i) tw->addTopLevelItem(new QTreeWidgetItem({ QString("Item %1").arg(i + 1) })); QObject::connect(pb, &QPushButton::clicked, tw, [&]() { for (int i = 0; i < 3; i++) { auto item = tw->topLevelItem(i); item->setForeground(0, QBrush(Qt::red)); for (int j = 0; j < 5; ++j) { auto item2 = new QTreeWidgetItem({ QString("SubItem %1,%2").arg(i + 1).arg(j + 1) }); item->addChild(item2); } }}); auto lw = new QListWidget; lay->addWidget(lw); for (int i = 0; i < 10; ++i) lw->addItem(QString("Item %1").arg(i + 1)); w.show(); return a.exec(); }