Ответ:
Текст не прокручивается, поскольку setItemWidget равен:
void QListWidget::setItemWidget(QListWidgetItem *item, QWidget *widget)
Устанавливает виджет, который будет отображаться в данном элементе.Эту функцию следует использовать только для отображения статического содержимого вместо элемента виджета списка.Если вы хотите отобразить пользовательский динамический контент или реализовать пользовательский виджет редактора, используйте взамен QListView и подкласс QItemDelegate.
В этом нет ничего о QGraphicsScene
.
Решение:
Если вы хотите сделать текст редактируемым.это гораздо проще, чем настроить QItemDelegate
.
Сначала установите виджет списка с помощью триггера редактирования, сообщите виджету, когда начинать редактирование.
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
...
ui->listWidget->setEditTriggers(QAbstractItemView::DoubleClicked);
}
Затем при создании &вставьте QListWidgetItem
, убедитесь, что каждый элемент доступен для редактирования.
※ Замените всю функцию on_pushButton_clicked
, как показано ниже:
void MainWindow::on_pushButton_clicked()
{
QListWidgetItem* item = new QListWidgetItem("name");
item->setFlags(item->flags() | Qt::ItemIsEditable);
ui->listWidget->insertItem(ui->listWidget->currentRow() + 1, item);
}