C++ 使用Qt ItemDelegate

C++ 使用Qt ItemDelegate,c++,qt,C++,Qt,我试图使用QStyledItemDelegate在我的列表视图中显示路径,以下是我这样做的原因,具有路径: C:\some_path\another_path\and_another_path\and_filnally_some_file.txt 对于宽度不足以显示完整路径的listView,我尝试将路径字符串修改为: C:\...\and_another_path\and_filnally_some_file.txt 通过这样做,这将符合我们的观点,但为了实现这一点,我需要在我

我试图使用QStyledItemDelegate在我的列表视图中显示路径,以下是我这样做的原因,具有路径:

C:\some_path\another_path\and_another_path\and_filnally_some_file.txt  
对于宽度不足以显示完整路径的listView,我尝试将路径字符串修改为:

C:\...\and_another_path\and_filnally_some_file.txt    
通过这样做,这将符合我们的观点,但为了实现这一点,我需要在我的代表中重新实施哪个fnc?(我打算将修改后的字符串发送到视图)
我试图对字符串做的另一个修改是将文件名加粗,并将路径的其余部分灰显,这同样需要在委托中完成,但在哪个函数中?油漆?

来自:

子类化QStyledItemDelegate

如果代理不支持绘制所需的数据类型,或者希望自定义项的绘制,则需要将QStyledItemDelegate子类化,并重新实现
paint()
,可能还需要
sizeHint()
。为每个项目分别调用
paint()
函数,使用
sizeHint()
,可以为每个项目指定提示


我建议两者都重新实施

是的,您必须重新实现
paint
function#Lol4t0,但在paint functions参数中,我看不到任何地方引用了我试图修改的字符串。我的意思是,我想数据将通过模型返回,但如何捕获它呢?您将获得
常量QModelIndex&index
,以获取data@Lol4t0好的,谢谢,明白了。我会试着玩一会儿。