#include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QMainWindow mainWindow; QWidget *centralWidget = new QWidget; mainWindow.setCentralWidget(centralWidget); QVBoxLayout *vBoxLayout = new QVBoxLayout(centralWidget); auto listView = new QListView(centralWidget); QStandardItemModel model(100, 1); for (int row = 0; row < model.rowCount(); ++row) { QStandardItem *item = new QStandardItem(QString("row %0").arg(row)); model.setItem(row, 0, item); } listView->setModel(&model); // This makes the widget always visible, whereas the custom delegate // approach doesn't, and manages memory better as a result. // To do it properly, subclass QStyledItemDelegate and reimplement createEditor(): // https://doc.qt.io/qt-5/qtwidgets-itemviews-stardelegate-example.html for (int row = 0; row < 10; ++row) { auto slider = new QSlider; slider->setOrientation(Qt::Horizontal); listView->setIndexWidget(model.index(row, 0), slider); } vBoxLayout->addWidget(listView); mainWindow.centralWidget()->setLayout(vBoxLayout); mainWindow.resize(400, 400); mainWindow.show(); return app.exec(); }