Qt Programming碎碎念(一)
1. 如何知道Qt的安装路径?
QLibraryInfo::location, 根据参数可以查询Qt不同模块的路径,如translations的路径、doc的路径等。
2. QDir::fromNativeSeparators/QDir::toNativeSeparators
这两个静态方法在UNIX/Linux下是没有效果的。请手动处理路径中的path separator,使用QString提供的方法。
3. QString不能在std::cout/std::cin中使用
因为QString重载<<符号定义是酱紫:QDataStream & operator<< ( QDataStream & stream, const QString & string )
所以,要使用QString的toStdString来转换一下,比如std::cout << test_qstring.toStdString() << std::endl;
C++ << operator重载,是看<<左边的类型,比如这里的cout,就是ostream类型,这个类会提供一系列operator<<的重载函数,比如可以接受const char *,可以接受int, long, short...;但是如果ostream中的operator<<重载函数中找不到一个匹配的,那就要看<<右边的类型是否能支持ostream <<操作符。做法就是在这个类型中重载operator<<,函数第一个参数是ostream,并且返回值也是ostream。
所以,在这个例子中,首先由于ostream不能handle QString,此外,QString虽然重载了operator<<,但是是为了支持QDataStream的。所以QString不能在ostream中使用。