Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. treeview获取节点的路径
Forum Updated to NodeBB v4.3 + New Features

treeview获取节点的路径

Scheduled Pinned Locked Moved Unsolved Chinese
7 Posts 2 Posters 4.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • YiQinY Offline
    YiQinY Offline
    YiQin
    wrote on last edited by
    #1

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

    joeQJ 1 Reply Last reply
    0
    • YiQinY YiQin

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

      joeQJ Offline
      joeQJ Offline
      joeQ
      wrote on last edited by
      #2

      @YiQin 欢迎:

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

      Just do it!

      1 Reply Last reply
      0
      • YiQinY Offline
        YiQinY Offline
        YiQin
        wrote on last edited by
        #3

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

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

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

        joeQJ 1 Reply Last reply
        0
        • YiQinY YiQin

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

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

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

          joeQJ Offline
          joeQJ Offline
          joeQ
          wrote on last edited by joeQ
          #4

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

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

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

          Just do it!

          YiQinY 1 Reply Last reply
          0
          • joeQJ joeQ

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

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

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

            YiQinY Offline
            YiQinY Offline
            YiQin
            wrote on last edited by
            #5

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

            joeQJ 1 Reply Last reply
            0
            • YiQinY YiQin

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

              joeQJ Offline
              joeQJ Offline
              joeQ
              wrote on last edited by
              #6

              @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)

              Just do it!

              YiQinY 1 Reply Last reply
              0
              • joeQJ joeQ

                @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)

                YiQinY Offline
                YiQinY Offline
                YiQin
                wrote on last edited by
                #7

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

                1 Reply Last reply
                0

                • Login

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Users
                • Groups
                • Search
                • Get Qt Extensions
                • Unsolved