treeview获取节点的路径



  • 你好~我用控件treeview 导入系统的e盘 现在想获取这个下面 某个文件夹的路径 请问该怎么做 我用了点击的信号 然后在这个信号对应的槽里面获取节点的路径~~用index.data.tostring中文路径得到的是乱码



  • @YiQin 欢迎:

    1. .打印index.data看看;
    2. 继续打印index.data.toString
    3. 路径在QML中的类型,一般是url这个基本类型。


  • 你好 谢谢你的回复~~~
    我把相应的信息打印出来了,代码如下所示:0_1510206904671_QQ截图20171109135359.png

    打印的消息如下所示:0_1510206935025_QQ截图20171109135444.png

    可以看出 当路径为中文的时候,index.data.tostring就不对了 请问是格式的问题吗??我该怎样做?



  • @YiQin 你好。你的结果中,并没有出现乱码。只是目前你的这环境显示的中文(宽字节的内容),都按照unicode编码显示了。\u4ee3\u7801\u8d70\u8bfb => 代码走读 是不是这个中文字符串?

    可是QString 本身是就是支持多子节的。你当前的Qt 版本多少?

    你是在 VS 中用的Qt库,对吧? 这个在目前的Qt IDE中,几乎很难遇到。 Qt IDE默认的编码环境都是utf-8. 尝试设置一下VS 的编码试试。



  • @joeQ 嗯 对的 我用的是vs2010+qt的方式 我在vs里面也设置了 编码方式为UTF-8不过还是上面那样的情况~~不知道 还有什么其他问题造成的嘛?



  • @YiQin 这些内容,显示在窗体上面也是这样吗? 比如,用QMessageBox 显示出来,也是unicode编码的方式吗?
    如果仅仅是qDebug的问题,可以忽略。

    或者,你尝试一下 :

    1. qDebug("%s",qPrintable(str))
    2. qDebug("%s",qUtf8Printable(str))
    3. qDebug("%ls",qUtf16Printable(str))

    const char *qPrintable(const QString &str)
    const wchar_t *qUtf16Printable(const QString &str)
    const char *qUtf8Printable(const QString &str)



  • @joeQ 你好用第二个中文就显示出来了,我先实现点击treeview下面的一个节点(文件夹),然后遍历里面的.png文件在listview中显示,请问该怎么做?
    我的思路是点击节点之后,往上获取路径,得到文件夹的绝对路径,然后在listview中遍历这个绝对路径的文件,请问有什么相应的代码或例程可以推荐的嘛??我想实现的效果图如下:0_1510302667331_175c3277-e1dd-4e1d-a417-9d213f4b7fee-image.png


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.