qt的qdate :: toString((函数,无参数,将qdate转换为QString,ddd mmm d yyyy的默认格式。我们的应用程序是国际性的,这种固定格式并不反映区域和区域环境。我不想使用longformat,因为它需要太多空间。默认的NO-参数是更优化的长度。我已经从系统qlocale获得了格式字符串的longformat,从而为我们提供了类似于默认格式的QString,但也反映了国际设置。
有什么方法可以告诉QT,每当调用ToString((时,我可以使用我的新格式字符串,以便我不必找到所有现有的toString((调用并将格式字符串插入参数?
根据QDate
的QT文档,您可以在QDate::toString()
中指定您想要的格式。
现在,为了避免困扰您的重复,您可以在包含应用程序格式的static
变量的某个地方指定。然后,每次调用QDate::toString()
时,都将其作为参数。这样,您将必须始终使用相同的变量/格式。
但是,如果您真的不想提供任何参数,则解决方案是通过通过您想要的一个将默认格式更改为子类QDate
并重新定义toString()
方法。
例如:
.h :
class MyDate final : public QDate
{
private:
static QString my_format;
public:
MyDate();
MyDate(int y, int m, int d);
MyDate(const QDate & date);
QString toFormattedString() const;
};
.cpp :
QString MyDate::my_format = "yyyy - MMMM dddd dd"; // Specify the format you desire.
MyDate::MyDate() : QDate()
{}
MyDate::MyDate(int y, int m, int d) : QDate(y, m, d)
{}
MyDate::MyDate(const QDate & date) : QDate(date)
{}
QString MyDate::toFormattedString() const
{
return toString(my_format);
}
您可以按照以下(示例(:
MyDate md(QDate::currentDate());
qDebug() << md.toFormattedString();
在这里,我命名了该方法toFormattedString()
,以使代码更易于理解。随意根据需要调整它。
我希望它会有所帮助。