我使用 QTreeWidget 显示文件列表,以便用户可以将文件复制到目录。 我想禁止用户将文件复制到同一目录。 因此,我想仅禁用 QTreeWidget 中的一行,使其不可选择。我尝试使用 QTreeWidgetItem 对象的
setDisable(bool)
方法,但问题是它禁用了整个子树。
如何在 QTreeWidget 中仅禁用一行?
我会尝试使用 QTreeWidgetItem::setFlags 禁用 Qt::ItemIsDropEnabled 标志, 即setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled)
我没有测试过这个。
这对我有用:
set_selectable = item.flags() | Qt.ItemIsSelectable
set_unselectable = item.flags() & ~Qt.ItemIsSelectable
item.setFlags(set_selectable if not is_enabled else set_unselectable)
我不知道该怎么做,就是改变线条的颜色,让它看起来像是被禁用了。
如果您想禁止将文件复制到目录中,请将目录设置为只读。
chmod(dir, 0555) 将执行目录 - dir 只读,您可以在
中 chmod()--干杯