• 15262阅读
  • 8回复

【提问】关于Qt中的绝对路径和相对路径的问题 [复制链接]

上一主题 下一主题
离线kytexzy
 

只看楼主 正序阅读 楼主  发表于: 2006-02-14
我在Linux下的Qt 4.1程序编译没问题,但我把它放在windows下用Mingw编译后,程序老是找不到数据库文件,我发现是相对路径写法的问题。
在Linux下我的宏定义是:
#define materialDB "./data/material.db"
在Linux下编译后运行没问题,但在windows下用这个方法就找不到数据库文件了。
于是我该成了绝对路径写法:
#define materialDB "e:/work/teamwork/data/material.db"
在windows下就能正常运行了。

我想问一下windows下用什么方法书写相对路径?最好能让平台转移时无需做更改。
[ 此贴被XChinux在2006-02-14 10:47重新编辑 ]
try to find forgiveness for yourself and forgive others
离线fsddp

只看该作者 8楼 发表于: 2011-04-21
顶下,也遇到同样的问题
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("bus.db");
这里用相对路径怎么用
离线long2001yuan
只看该作者 7楼 发表于: 2006-10-27
引用第2楼fanyu2006-02-14 21:17发表的“”:
推荐你这样写 "path/file",可以做到平台无关,不要用.来表示当前路径。


请问为什么不能用 ./ ?
离线cavendish

只看该作者 6楼 发表于: 2006-02-15
不涉及驱动器盘符的话
不需要这么复杂
简单的“/”在Qt中
Windows/Linux下都可以正常工作
离线XChinux

只看该作者 5楼 发表于: 2006-02-15

     QString strPath = QApplication::applicationDirPath();      
     if (strPath[0] == '/')
     {
           strPath += "/Setup.ini";
     }
     else
     {
           strPath += "\\Setup.ini";
     }

这是我写的程序中的一段,分别判断Linux和Windows下的情况的
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线cavendish

只看该作者 4楼 发表于: 2006-02-15
linux没有c、d、e这样的驱动器符号
windows没办法
建议使用配置文件
离线kytexzy

只看该作者 3楼 发表于: 2006-02-15
不行啊,大家看我的函数:
bool createConnection(QString &dbName, QString &dbConnection)
{
  QFileInfo dbInfo(dbName);
  if (! dbInfo.exists()) {
     return false;
  }

  QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", dbConnection);
  db.setDatabaseName(dbName);
  if (! db.open()) {
     return false;
  }
  return true;
}

如果我
#define materialDB "data/material.db"
这样定义宏的话,
QFileInfo dbInfo(dbName);
  if (! dbInfo.exists()) {
     return false;
  }
dbInfo.exists()就会返回假了,这是为何?
Mingw32 + Qt 4.1
try to find forgiveness for yourself and forgive others
离线fanyu
只看该作者 2楼 发表于: 2006-02-14
推荐你这样写 "path/file",可以做到平台无关,不要用.来表示当前路径。
离线XChinux

只看该作者 1楼 发表于: 2006-02-14
.\
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个