0

treewidget を作成し、編集可能な treewidgetitems をいくつか追加しました。

私の目標は、アイテムを入力した後、アイテムの新しい価値をキャッチすることです。

コードは次のとおりです。

    QTreeWidgetItem* child = new QTreeWidgetItem();
    child->setText(0, "New Folder");
    child->setText(1, "--");
    child->setText(2, "--");
    child->setFlags(child->flags() | Qt::ItemIsEditable);
    item[0]->addChild(child);
    item[0]->setExpanded(true);
    MyTree->editItem(child);

    MyTree->setCurrentItem(child);
    ...

「editItem」が設定されている場合、インターフェイスで新しい値を入力できます。必要なのは、「Enter」キーを押した後に新しい値をキャッチできるようにすることです。アイテムが編集可能になると、名前は「New Folder」になり、テキストが選択され、「blabla」などの新しい名前を入力してEnterキーを押します。

「blabla」をキャッチする必要があります。以下のコードを使用してみました。

    ....
    MyTree->setCurrentItem(child);

    QList<QTreeWidgetItem *> item;

    item = MyTree->selectedItems();
    QString str = item[0]->text(0);
    QByteArray latin_str = str.toLatin1();
    char *utf8_text = latin_str.data();

しかし、utf8_text は "blabla" ではなく "New Folder" を報告します

何か案が ?

4

2 に答える 2