如何用QString存下umi-ocr --path "E:\Image and Text Extraction\Image\T2.png"
时间: 2024-11-13 16:19:48 浏览: 0
在Qt中,你可以使用QString来存储文件路径,包括像"E:\Image and Text Extraction\Image\T2.png"这样的绝对路径。QString是一个宽字符字符串类型,在处理文件路径时非常方便。如果你想将这个路径存入QString变量,可以这样做:
```cpp
QString umiOcrPath = QStringLiteral("E:/Image and Text Extraction/Image/T2.png");
```
`QSLiteralString`用于创建不会改变大小写的常量宽字符字符串,适合保存路径这样的文本数据。如果你需要在运行时动态构建路径,可以直接构造QString即可:
```cpp
QString workingDirectory(QStringLiteral("E:\\Image and Text Extraction\\Image"));
QString fileName(QStringLiteral("T2.png"));
QString umiOcrPath = workingDirectory + QLatin1Char('/') + fileName;
```
这里使用了`QLatin1Char('/')`确保路径分隔符会被正确地转义。
相关问题
ui.textEdit_UpFile5->append(QString("--------------Start----%1------------"), QString::number(i));哪里语法不对
这段代码中存在语法错误。原因是`QString::number(i)`不应该作为第二个参数传递给`append()`函数。应该将其放在一个新的`QString`对象中,并将其作为第二个参数传递给`append()`函数。修改后的代码如下所示:
```
ui.textEdit_UpFile5->append(QString("--------------Start----%1------------").arg(QString::number(i)));
```
form_para.cpp:336:30: Call to member function 'arg' is ambiguous qstring.h:313:31: candidate function qstring.h:315:31: candidate function qstring.h:1111:25: candidate function qstring.h:1113:25: candidate function qstring.h:1115:25: candidate function qstring.h:1117:25: candidate function qstring.h:1119:25: candidate function qstring.h:1121:25: candidate function
这个错误提示是因为在调用`arg()`函数时,编译器无法确定应该调用哪个函数。在QT中,`arg()`函数有多个重载形式,如果在调用时没有传递足够的参数信息,编译器就无法确定应该调用哪个函数。
为了解决这个问题,可以显式地指定要调用的`arg()`函数的重载形式,如下所示:
```cpp
int num = -255; // 负数
QString hex_str;
if (num >= 0) {
hex_str = QString("%1").arg(num, 8, 16, QChar('0'));
} else {
hex_str = QString("%1").arg(((1 << 32) - 1) ^ ((-num - 1) << 1) | 1, 8, 16, QChar('0'));
}
qDebug() << hex_str;
```
在调用`arg()`函数时,将要调用的重载形式显式地指定为`arg(int, int, int, QChar)`,这样编译器就能够确定要调用哪个函数了。
阅读全文