捕获QProcess (ls)到列表视图
Capture QProcess (ls) to listview
我需要为一个过程向用户提供一系列已挂载的驱动器。下面的片段将显示驱动器挂载所在目录的内容。我如何解析出sd??值(sda1,sdb1等)从QString"命令",并提供给用户选择?列表框吗?如何建议。
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,只需要使用QtAndroidExtras
平台特定的API。
ListView {
...
model: myStringListProprety
// or: model: myClass.myStringListAccessor()
}
所以,基本上你要么创建一个属性(这是我的建议),要么在c++中创建一个slot/可调用的方法。如果您已经使用了QStorageInfo,那么您已经准备好了,因为目标属性已经存在于那里。同样,它可能需要Android特定的后端调整,但这种对类的摆弄也会使其他人受益! 相关文章:
- 列表视图更改选择颜色
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 列表视图项的替代颜色
- 如何将 QString 的 QList 分配给列表视图?
- 如何修复列表视图中的错误?,封装控件时无法选择任何项
- 如何在 c++ 中从列表视图中获取值
- Qml 列表视图在重置模型时保留视图
- 创建列表视图后无法更改列表视图中的列宽
- 如何在调整列表视图大小时将标题宽度设置为等于其列表视图控件宽度
- 如何更改列表视图的边框颜色
- Qt:将 c++ 中的列表连接到 QML 中的列表视图
- 如何绑定到列表视图的 OnItemSelectionChanged
- 列表视图最初不显示数据
- 从C++访问列表视图委托的文本
- LVM_GETNEXTITEM在列表视图中找不到项目
- UWP 列表视图占用的高度超过可用高度
- 如何在移动列表视图中添加滚动条?并且用户只能垂直滚动特定区域
- C++ win32 列表视图列
- QML 列表视图和密钥导航 - 处理单个密钥事件
- 循环访问列表视图项 win32 api