我可以更改 QDate::QString() 的默认格式吗?
Can I change default formatting for QDate::QString()?
QT 的 QDate::toString() 函数,不带参数,将 QDate 转换为默认格式为 "ddd MMM d yyyy" 的 QString。我们的应用程序是国际性的,这种固定格式不反映语言环境和区域设置。我不想使用 LongFormat,因为它需要太多 space;默认的无参数是一个更优化的长度。我已经从系统 QLocale 获得了 LongFormat 按摩格式字符串给我们一个类似于默认格式但也反映国际设置的 QString。
有什么方法可以告诉 QT 在调用 toString() 时使用我的新格式字符串,这样我就不必查找所有现有的 toString() 调用并将格式字符串作为参数插入?
根据 Qt documentation of QDate
, you can specify the format you desire in QDate::toString()
.
现在,为了避免困扰您的重复,您可以在某处指定一个包含应用程序格式的 static
变量。然后每次调用 QDate::toString()
时都将其作为参数提供。这样,您将不得不始终使用相同的 variable/format.
但是如果你真的不想给任何参数,解决方案是继承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()
是为了让代码更容易理解。随意根据需要进行调整。
希望对您有所帮助。
QT 的 QDate::toString() 函数,不带参数,将 QDate 转换为默认格式为 "ddd MMM d yyyy" 的 QString。我们的应用程序是国际性的,这种固定格式不反映语言环境和区域设置。我不想使用 LongFormat,因为它需要太多 space;默认的无参数是一个更优化的长度。我已经从系统 QLocale 获得了 LongFormat 按摩格式字符串给我们一个类似于默认格式但也反映国际设置的 QString。
有什么方法可以告诉 QT 在调用 toString() 时使用我的新格式字符串,这样我就不必查找所有现有的 toString() 调用并将格式字符串作为参数插入?
根据 Qt documentation of QDate
, you can specify the format you desire in QDate::toString()
.
现在,为了避免困扰您的重复,您可以在某处指定一个包含应用程序格式的 static
变量。然后每次调用 QDate::toString()
时都将其作为参数提供。这样,您将不得不始终使用相同的 variable/format.
但是如果你真的不想给任何参数,解决方案是继承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()
是为了让代码更容易理解。随意根据需要进行调整。
希望对您有所帮助。