Issue 33096: ttk.Treeview.insert() does not allow to insert item with "False" iid (original) (raw)

ttk.Treeview.insert(... iid=None, ...) method has a check: if iid: res = self.tk.call(self._w, "insert", parent, index, "-id", iid, *opts) else: res = self.tk.call(self._w, "insert", parent, index, *opts)

Documentation says that "If iid is specified, it is used as the item identifier", but as you can see from code, iid is used only if it's "True". It means that you cannot use iids like 0, 0.0 etc.

This was initially reported in pydev thread "ttk.Treeview.insert() does not allow to insert item with iid=0" on 2018/3/16. Igor, you should have mentioned on the thread that you had opened a tracker issue in response. It was only happenstance that I did not open a duplicate.

I suggested there that 'if iid:' be replaced by 'if iid is not None:' but wondered if passing '"-id" ""' in the tk.call would be a problem. If so, that would be a reason for the expanded check and suggest 'if iid in (None, ''):" as the replacement.

MRAB responded that '' is the id of the root of the tree. But that does not tell me if passing a duplicate iid or that particular duplicate is a problem or not.