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中使用。

你可能感兴趣的:(programming)