ubuntu 用.desktop启动的程序,QDir::currentPath()指向的目录是哪里

在Ubuntu系统中,通过.desktop文件启动程序时,QDir::currentPath()指向的目录由以下规则决定:

1. 若.desktop文件中指定了Path字段

  • 行为QDir::currentPath()会指向Path字段定义的目录。
  • 示例

    [Desktop Entry]
    Name=MyApp
    Exec=/path/to/your/app
    Path=/custom/working/directory # 关键字段
    Icon=/path/to/icon.png
    Type=Application
    此时,QDir::currentPath()将返回/custom/working/directory

2. 若.desktop文件中未指定Path字段

  • 行为QDir::currentPath()默认指向用户的主目录($HOME)。
  • 原因:未明确指定工作目录时,系统会使用启动.desktop文件的环境(通常是用户登录后的默认路径,即$HOME)作为当前工作目录。

验证方法

可以通过以下步骤验证:

  1. 编写测试程序

    #include <QDir>
    #include <QDebug>
    
    
    int main() {
        qDebug() << "Current Path:" << QDir::currentPath();
        return 0;
    }
    编译程序

    qmake -project
    qmake
    make
    创建.desktop文件

    [Desktop Entry]
    Name=TestApp
    Exec=/path/to/your/compiled/app
    # 不指定Path字段
    Icon=/path/to/icon.png
    Type=Application
    运行并观察输出
    • 双击.desktop文件启动程序,终端会输出当前工作目录(通常为$HOME)。

修改默认行为

如果需要让QDir::currentPath()指向特定目录,应在.desktop文件中显式添加Path字段:

[Desktop Entry]
Name=MyApp
Exec=/path/to/your/app
Path=/desired/working/directory # 添加此行
Icon=/path/to/icon.png
Type=Application

总结

场景QDir::currentPath()指向
.desktop文件指定PathPath字段定义的目录
.desktop文件未指定Path用户主目录($HOME

通过合理配置.desktop文件,可以精确控制Qt应用程序的当前工作目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值