Delphi 10.2 Tokyo:如何将单选的TArray<string>转换为字符串写入编辑框
把单目录选择的TArray转成字符串写入编辑框的方法
刚好碰到过类似的场景,给你捋捋怎么处理:
既然你已经限制用户只能选单个目录,那TArray<string>类型的Directories里要么是空(用户点了取消),要么就只有一个路径元素。你可以按下面的步骤来转换并写到编辑框里:
- 先判断数组是否有内容:避免空数组访问导致崩溃,这是开发里的好习惯
- 提取唯一的目录路径:因为限制了单目录,直接取数组的第一个元素就行
- 赋值给编辑框:把转好的字符串设置成编辑框的文本
给你贴一段Unreal里的代码示例,你可以直接参考:
// 假设调用SelectDirectory后得到了TArray<string> Directories FString TargetDir; // 先检查数组长度,处理用户取消选择的情况 if (Directories.Num() > 0) { // 把std::string转成UE的FString,方便后续操作 TargetDir = FString(Directories[0].c_str()); } else { // 用户取消选择时,设置空字符串或者自定义提示文本 TargetDir = TEXT("未选择目录"); } // 假设你的编辑框是UEditableTextBox类型的指针,命名为DirEditBox if (DirEditBox != nullptr) { DirEditBox->SetText(FText::FromString(TargetDir)); }
小提醒:
- 如果你的
TArray里存的是UE原生的FString而不是标准std::string,那直接TargetDir = Directories[0]就行,不用转c_str() - 千万别忘了判断数组长度,哪怕你限制了单目录,也要处理用户取消的场景,不然很容易踩崩溃的坑
内容的提问来源于stack exchange,提问作者malimiwo
相关产品推荐
相关产品推荐

