Qt QString转成QStringList, 以及QString接收命令行字符串的方法;原始字符串

374 阅读1分钟

QStringList 应该是个容器

QStringList qsl = QString("ffmpeg -i "rtsp://192.168.0.93:554/user=admin&password=&channel=0&stream=1.sdp?real_stream"  -c copy -f rtsp -rtsp_transport udp rtsp://192.168.0.41:554/live/stream0").split(" ");

形参是QString,但中间间隔空格,以及有特殊字符" 比如命令行;先让一个std::stringstream来承接,然后转成std::string接着转成char*传给QString形参

#include <sstream>
std::string cmd_raw_str{R"(ffmpeg -i "rtsp://192.168.0.93:554/user=admin&password=&channel=0&stream=1.sdp?real_stream"  -c copy -f rtsp -rtsp_transport udp rtsp://192.168.0.41:554/live/stream0)"};  
std::stringstream cmd_ss;
cmd_ss << cmd_raw_str;
char* p_ch = cmd_ss.str().c_str();

推荐,将原始字符串转char*传入QString

std::string cmd_raw_str{R"(ffmpeg -i "rtsp://192.168.0.93:554/user=admin&password=&channel=0&stream=1.sdp?real_stream"  -c copy -f rtsp -rtsp_transport udp rtsp://192.168.0.41:554/live/stream0)"};  
char* p_ch = cmd_raw_str.c_str();