QTreeWidget:禁用一行,但不禁用子树

问题描述 投票:0回答:3

我使用 QTreeWidget 显示文件列表,以便用户可以将文件复制到目录。 我想禁止用户将文件复制到同一目录。 因此,我想仅禁用 QTreeWidget 中的一行,使其不可选择。我尝试使用 QTreeWidgetItem 对象的

setDisable(bool)
方法,但问题是它禁用了整个子树。

如何在 QTreeWidget 中仅禁用一行?

qt qtreewidget qtreewidgetitem
3个回答
2
投票

我会尝试使用 QTreeWidgetItem::setFlags 禁用 Qt::ItemIsDropEnabled 标志, 即setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled)

我没有测试过这个。


0
投票

这对我有用:

set_selectable = item.flags() | Qt.ItemIsSelectable
set_unselectable = item.flags() & ~Qt.ItemIsSelectable

item.setFlags(set_selectable if not is_enabled else set_unselectable)

我不知道该怎么做,就是改变线条的颜色,让它看起来像是被禁用了。


-3
投票

如果您想禁止将文件复制到目录中,请将目录设置为只读。

chmod(dir, 0555) 将执行目录 - dir 只读,您可以在

中 chmod()

--干杯

© www.soinside.com 2019 - 2024. All rights reserved.