微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

"QString text = tr("%1...").arg(QString(format).toUpper()); 的等价物是什么?从 QT C++ 到 PyQt5 (Python)?

如何解决"QString text = tr("%1...").arg(QString(format).toUpper()); 的等价物是什么?从 QT C++ 到 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() 返回翻译后的文本,它是 python 中不存在的 QString,而 arg() 返回一个字符串,用传递的值替换标记(%1 和 %2),因此在 python 中,您可以使用格式,%X 或 f 字符串:

fileName = QFileDialog.getSaveFileName(
    self,self.tr("Save As"),initialPath,self.tr("{} Files (*.{});;All Files (*)").format(fileFormat.upper(),fileFormat),)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。