我正在尝试使用 QStyledItemDelegate 以便在我的 ListView 中显示路径,以下是我这样做的原因,具有路径:
C:\some_path\another_path\and_another_path\and_filnally_some_file.txt
和宽度不足以显示完整路径的 listView,我正在尝试将路径字符串修改为:
C:\...\and_another_path\and_filnally_some_file.txt
通过这样做,这将符合 View ,但我需要在我的委托(delegate)中重新实现哪个 fnc 才能实现这一点? (我的意思是将这个修改后的字符串发送到 View )
我尝试对字符串进行的另一个修改是加粗文件名并将路径的其余部分变灰,同样这需要在委托(delegate)中完成,但在哪个函数中?油漆?
最佳答案
来自 QStyledItemDelegate
documentation :
子类化 QStyledItemDelegate
如果委托(delegate)不支持你需要的数据类型的绘制或者你想自定义项目的绘制,你需要子类化QStyledItemDelegate,并重新实现paint()
和可能的sizeHint ()
。 paint()
函数针对每个项目单独调用,使用 sizeHint()
,您可以为每个项目指定提示。
我建议重新实现两者。
关于c++ - 使用 Qt ItemDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9749160/