我认为库需要使用特殊工具预处理源代码是不合理的.也就是说,有几个人向我推荐了Qt库,用于跨平台GUI开发.
没有预处理步骤,Qt有多可用?
编辑:好的人,我不是把这个问题视为对Qt的抨击 - 太多的Qt粉丝正在对待它,好像它是.我不想讨论Qt提出这个预处理工具的优点.我理解为什么这个工具在那里,我理解为什么Qt设计的大部分都建立在预处理的基础之上.
我从来没有使用过Qt,因此我无法扯掉它.但我宁愿自己写一些少量的样板,而不是依赖于撕掉我的整个构建过程.出于同样的原因,我不会在我当前的项目中使用Flex和Bison; 如果我不使用这些工具,我绝对不会使用其他类型的预处理.
所以,请不要把我当作Qt翻录.我不能评论它有多好或多不好; 我没用过它.我只是想知道是否可以不使用它moc.
我尝试使用QLocale和setDefault函数更改语言环境,但似乎它不起作用.以下是使用C本地化库和QLocale更改语言环境的示例.对于C本地化库,似乎它可以工作,但对于QLocale,似乎忽略了setDefault函数调用.
QLocale curLocale(QLocale("pl_PL"));
QLocale::setDefault(curLocale);
QDate date = QDate::currentDate();
QString dateString = date.toString();
// prints "Fri Nov 9 2012" but that was not expected
std::cout << dateString.toStdString() << std::endl;
// prints "en_US", but shouldn't it be "pl_PL"?
std::cout << QLocale::system().name().toStdString() << std::endl;
std::setlocale(LC_ALL, "pl_PL");
// prints "pl_PL"
std::cout << std::setlocale(LC_ALL, 0) << std::endl;
std::time_t currentTime;
std::time(¤tTime);
std::tm* timeinfo = std::localtime(¤tTime);
char charArray[40];
std::strftime(charArray, 40, "%a %b %d %Y", timeinfo);
// prints "pi lis 09 2012" and that's cool
std::cout << charArray …Run Code Online (Sandbox Code Playgroud)