[Qtscript-bindings] QTreeWidget, deleting/removing an item

Jostein Topland josteint at sim.no
Wed Oct 15 13:21:05 CEST 2008


This new prototype QTreeWidgetItem.remove(QTreeWidget) seems to successfully delete QTreeWidgetItem in a QTreeWidget.
This example shows a tree and deletes items by clicking on the items.

function main()
{
  var treeWidget = new QTreeWidget();

  // add some items
  var root = treeWidget;
  var a = new QTreeWidgetItem(root, ["a"]);
  var b = new QTreeWidgetItem(root, ["b"]);
  var c = new QTreeWidgetItem(root, ["c"]);
  var d = new QTreeWidgetItem(root, ["d"]);
  var e = new QTreeWidgetItem(d, ["e"]);
  var f = new QTreeWidgetItem(e, ["f"]);

  // show and expand the tree
  treeWidget.show();
  treeWidget.expandAll();

  // successfully delete an item by pressing it
  treeWidget.itemPressed.connect(this, function(item) {
    item.remove(treeWidget);
  });
}

QTreeWidgetItem.prototype.remove = function(treeWidget)
{
  var parent = this.parent();
  if (!parent)
    parent = treeWidget.invisibleRootItem();
  var index = parent.indexOfChild(this);
  parent.takeChild(index);
}

Jostein Topland
Kongsberg SIM


Jostein Topland wrote:
> How is deleting items in a QTreeWidget done in QtScript?
>
> The following examples explains what I am trying to do.
> Both examples are equal, but in different languages.
> Look at line 15 on QtScript example.
>
> /* Here is a working example in C++ */
> 1  #include <QApplication>
> 2  #include <QTreeWidget>
> 3
> 4  int main(int argc, char *argv[])
> 5  {
> 6   QApplication app(argc, argv);
> 7
> 8   QTreeWidget *treeWidget = new QTreeWidget();
> 9   treeWidget->show();
> 10
> 11  // add some items
> 12  new QTreeWidgetItem(treeWidget, QStringList("first"));
> 13  new QTreeWidgetItem(treeWidget, QStringList("second"));
> 14  new QTreeWidgetItem(treeWidget, QStringList("third"));
> 15
> 16  // select the first item
> 17  treeWidget->setCurrentItem(treeWidget->itemAt(0, 0));
> 18
> 19  // delete the selected item... OK!
> 20  delete treeWidget->selectedItems()[0];
> 21
> 22  return app.exec();
> 23 }
>
> /* Here is a non-working example in QtScript */
> 1  function main()
> 2  {
> 3   var treeWidget = new QTreeWidget();
> 4   treeWidget.show();
> 5
> 6   // add some items
> 7   new QTreeWidgetItem(treeWidget, ["first"]);
> 8   new QTreeWidgetItem(treeWidget, ["second"]);
> 9   new QTreeWidgetItem(treeWidget, ["thirs"]);
> 10
> 11  // select the first item
> 12  treeWidget.setCurrentItem(treeWidget.itemAt(0, 0));
> 13
> 14  // delete the selected item... nothing happends??
> 15  delete treeWidget.selectedItems()[0];
> 16 }
>
>
> Jostein Topland
> Kongsberg SIM
>
> _______________________________________________
> Qtscript-bindings mailing list
> Qtscript-bindings at kde.org
> https://mail.kde.org/mailman/listinfo/qtscript-bindings
>   



More information about the Qtscript-bindings mailing list