0
class StringResourceTable
{
private:
StringResourceTable();
public:
static StringResourceTable& instance();
void configure(const QString& path);
QString message(const QString& id) const;
template <typename T1>
QString message(const QString& id, T1 a1) const
{
return message(id).arg(a1);
}
template <typename T1, typename T2>
QString message(const QString& id, T1 a1, T2 a2) const
{
return message(id).arg(a1).arg(a2);
}
template <typename T1, typename T2, typename T3>
QString message(const QString& id, T1 a1, T2 a2, T3 a3) const
{
return message(id).arg(a1).arg(a2).arg(a3);
}
private:
QString m_path;
QMap<QString, QString> m_map;
}
该代码使用arg
方法,如果QString
类的一些参数替代%1
,%2
,...。参数可以是int,char *,double和QString
支持的任何值,但不能是std::string
。将std::string
传递给message
函数是非常方便的。我无法专门为std::string
专门设计,因为它的顺序没有定义。它可能是第一,第二,...如何将`std :: string`传递给`QString`` arg`方法?
我认为它应该是一个模板结构,它将使用.c_str()
方法将std::string
转换为QString
。谁可以帮助写作呢?
但通过INT例如当它应该如何工作。它应该是模板的其他类型的工作 – Ashot
@Ashot你可以重载你的模板方法用于字符串... – ForEveR