gpt4 book ai didi

android - 捕获 QProcess (ls) 到 ListView

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:08 25 4
gpt4 key购买 nike

我需要为用户提供一系列已安装的驱动器以进行程序。下面的 fragment 将向我展示驱动器挂载所在目录的内容。我怎样才能解析出sd?来自 QString“命令”的值(sda1、sdb1 等)并将它们提供给用户供选择?列表框?请教如何。

   QProcess mount_dir;
mount_dir.setProcessChannelMode(QProcess::MergedChannels);
cstring = adb + " -s " + daddr+port + " shell su -c ls /storage/;
mount_dir.start(cstring);
mount_dir.waitForFinished(-1);
command=mount_dir.readAll();

最佳答案

看来您是在重新发明轮子。请考虑使用 QStorageInfo对于这个任务,即:

 Q_PROPERTY(QStringList allLogicalDrives READ allLogicalDrives NOTIFY logicalDriveChanged)

它可能无法移植到 Android,但这应该很容易做到。无需为此运行 QProcess,只需将平台特定的 API 与 QtAndroidExtras 一起使用即可。

至于 ListView 问题,使用这个 QML:

ListView {
...
model: myStringListProprety
// or: model: myClass.myStringListAccessor()
}

所以,基本上您要么创建一个属性(这是我的建议),要么在 C++ 中创建插槽/可调用方法。如果您使用过 QStorageInfo,那么您就可以准备就绪,因为目标属性已经存在于那里。同样,它可能需要特定于 Android 的后端调整,但这种对类的摆弄也会使其他人受益!

关于android - 捕获 QProcess (ls) 到 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com