Я написал код, который должен перемещать элементы между двумя QTreeWidgets, treeAvailable и treeSelected.Деревья представляют собой один столбец и содержат QStrings.Я предполагал, что приведенный ниже код будет работать, но я не могу понять, почему он не работает.
DataPlaneEditor::DataPlaneEditor(QWidget* parent) :
QDialog(parent),
ui(new Ui::DataPlaneEditor)
{
ui->setupUi(this);
connect(ui->pushAdd, &QPushButton::clicked, this, &DataPlaneEditor::addButton);
connect(ui->pushRemove, &QPushButton::clicked, this, &DataPlaneEditor::removeButton);
connect(ui->treeAvailable, &QTreeWidget::doubleClicked, this, &DataPlaneEditor::addButton);
connect(ui->treeSelected, &QTreeWidget::doubleClicked, this, &DataPlaneEditor::removeButton);
}
void DataPlaneEditor::addButton()
{
QTreeWidgetItem* chosenData = ui->treeAvailable->currentItem();
if (!chosenData) return;
ui->treeAvailable->insertTopLevelItem(0, chosenData);
ui->treeSelected->removeItemWidget(chosenData, 0);
}
void DataPlaneEditor::removeButton()
{
QTreeWidgetItem* chosenData = ui->treeSelected->currentItem();
if (!chosenData) return;
ui->treeAvailable->insertTopLevelItem(0, chosenData);
ui->treeSelected->removeItemWidget(chosenData, 0);
}