什么是 "QString text = tr("%1...").arg(QString(format).toUpper());"从 QT C++ 到 PyQt5 (Python)?
What is the equivalent of "QString text = tr("%1...").arg(QString(format).toUpper());" from QT C++ to PyQt5 (Python)?
我试过类似的方法:
text = self.tr("%1...").arg(str(format).upper())
但我收到错误 'str' 对象没有属性 'arg'。我认为 QString 已从 PyQt5 中弃用。
我也不知道如何翻译成 Python:
QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
initialPath,
tr("%1 Files (*.%2);;All Files (*)")
.arg(QString::fromLatin1(fileFormat.toUpper()))
.arg(QString::fromLatin1(fileFormat)));
应用程序从 Qt/C++ 到 PyQt5(或 PySide2)的转换在很大程度上是微不足道的,但在某些细节上没有直接转换,因此您应该了解该行代码的作用。在您的情况下,tr() returns 翻译后的文本是 python 中不存在的 QString,而 arg() returns 是替换标记的字符串(%1 和 %2)使用传递的值,所以在 python 中,您可以使用格式、%X 或 f 字符串:
fileName = QFileDialog.getSaveFileName(
self,
self.tr("Save As"),
initialPath,
self.tr("{} Files (*.{});;All Files (*)").format(fileFormat.upper(), fileFormat),
)
我试过类似的方法:
text = self.tr("%1...").arg(str(format).upper())
但我收到错误 'str' 对象没有属性 'arg'。我认为 QString 已从 PyQt5 中弃用。 我也不知道如何翻译成 Python:
QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
initialPath,
tr("%1 Files (*.%2);;All Files (*)")
.arg(QString::fromLatin1(fileFormat.toUpper()))
.arg(QString::fromLatin1(fileFormat)));
应用程序从 Qt/C++ 到 PyQt5(或 PySide2)的转换在很大程度上是微不足道的,但在某些细节上没有直接转换,因此您应该了解该行代码的作用。在您的情况下,tr() returns 翻译后的文本是 python 中不存在的 QString,而 arg() returns 是替换标记的字符串(%1 和 %2)使用传递的值,所以在 python 中,您可以使用格式、%X 或 f 字符串:
fileName = QFileDialog.getSaveFileName(
self,
self.tr("Save As"),
initialPath,
self.tr("{} Files (*.{});;All Files (*)").format(fileFormat.upper(), fileFormat),
)