为什么我不能添加或删除 QListWidgetItem?
Why can't I add or remove a QListWidgetItem?
我的 ui
有两个 ListWidget
,我想将一个 QListWidgetItem
从 availableMeasurementsListWidget
移到 selectedMeasurementListWidget
但这对我不起作用。没有添加到 selectedMeasurementListWidget
中,并且该项目不会从 availableMeasurementsListWidget
中删除。为什么?
只有工作人员才能显示 qDebug() << item->text();
的文本
void ChartSettingsWindow::on_availableMeasurementsListWidget_doubleClicked(const QModelIndex &index)
{
Q_UNUSED(index);
QListWidgetItem *item = ui->availableMeasurementsListWidget->currentItem();
qDebug() << item->text();
ui->selectedMeasurementListWidget->addItem(item);
ui->availableMeasurementsListWidget->removeItemWidget(item);
}
请注意 QListWidget:: removeItemWidget
不会从 QListWidget
中删除 QListWidgetItem
:它只是...
Removes the widget set on the given item.
To remove an item (row) from the list entirely, either delete the item
or use takeItem().
所以你可能想要类似...
auto *available = ui->availableMeasurementsListWidget;
auto *selected = ui->selectedMeasurementListWidget;
auto *item = available->currentItem();
selected->addItem(available->takeItem(available->indexFromItem(item).row()));
我的 ui
有两个 ListWidget
,我想将一个 QListWidgetItem
从 availableMeasurementsListWidget
移到 selectedMeasurementListWidget
但这对我不起作用。没有添加到 selectedMeasurementListWidget
中,并且该项目不会从 availableMeasurementsListWidget
中删除。为什么?
只有工作人员才能显示 qDebug() << item->text();
void ChartSettingsWindow::on_availableMeasurementsListWidget_doubleClicked(const QModelIndex &index)
{
Q_UNUSED(index);
QListWidgetItem *item = ui->availableMeasurementsListWidget->currentItem();
qDebug() << item->text();
ui->selectedMeasurementListWidget->addItem(item);
ui->availableMeasurementsListWidget->removeItemWidget(item);
}
请注意 QListWidget:: removeItemWidget
不会从 QListWidget
中删除 QListWidgetItem
:它只是...
Removes the widget set on the given item.
To remove an item (row) from the list entirely, either delete the item or use takeItem().
所以你可能想要类似...
auto *available = ui->availableMeasurementsListWidget;
auto *selected = ui->selectedMeasurementListWidget;
auto *item = available->currentItem();
selected->addItem(available->takeItem(available->indexFromItem(item).row()));