You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QT Installer Framework 3.0中强制固定安装目标目录

如何在QT Installer Framework v3.0中固定安装目标目录(禁止用户修改)

你已经在config.xml里指定了<TargetDir>C:/QSSWeb2Board</TargetDir>,但默认情况下用户还是能在安装向导里修改这个路径。要实现完全固定,需要结合**控制脚本(Control Script)**来修改安装向导的行为,这里有两种常用方案:

方案1:直接隐藏目标目录选择页面(推荐)

这种方法最彻底,用户根本看不到目录选择的步骤,完全跳过这个环节。

步骤:

  1. 在你的安装包项目根目录下创建一个名为installscript.qs的文件,写入以下代码:
function Controller() {
    // 隐藏目标目录选择页面
    installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
}

// 可选:确保欢迎页跳转后仍保持页面隐藏
Controller.prototype.WelcomePageCallback = function() {
    installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
}
  1. 修改你的config.xml,添加一行引用这个控制脚本,放在<Installer>标签内:
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>QSSWeb2Board</Name>
<Version>1.0.0</Version>
<Title>QSSWeb2Board</Title>
<Publisher>BQ Educacion</Publisher>
<ProductURL>https://bitbloq.bq.com</ProductURL>
<InstallerWindowIcon>bitbloq</InstallerWindowIcon>
<InstallerApplicationIcon>bitbloq</InstallerApplicationIcon>
<Logo>bitbloq.png</Logo>
<StartMenuDir>Bitbloq</StartMenuDir>
<TargetDir>C:/QSSWeb2Board</TargetDir>
<!-- 添加这行,引用控制脚本 -->
<ControlScript>installscript.qs</ControlScript>
</Installer>

编译安装包后,安装向导会直接跳过目录选择步骤,用户无法修改你指定的TargetDir。

方案2:保留页面但禁用目录输入框

如果你想让用户看到目标目录,但不允许修改,可以用这个方法:

步骤:

  1. 同样创建installscript.qs文件,写入以下代码:
function Controller() {}

Controller.prototype.TargetDirectoryPageCallback = function() {
    // 获取目标目录页面的控件
    var targetPage = gui.pageWidgetByObjectName("TargetDirectoryPage");
    if (targetPage) {
        // 找到目录输入框并禁用编辑
        var dirInput = targetPage.findChild("TargetDirectoryLineEdit");
        if (dirInput) {
            dirInput.setEnabled(false);
        }
        // 禁用"浏览"按钮,彻底阻止路径修改
        var browseBtn = targetPage.findChild("BrowseButton");
        if (browseBtn) {
            browseBtn.setEnabled(false);
        }
    }
}
  1. 同样在config.xml中添加<ControlScript>installscript.qs</ControlScript>引用,就像方案1那样。

这样用户能看到你指定的安装目录,但无法修改或浏览选择其他路径。

注意事项

  • 确保installscript.qs文件和config.xml在同一目录下,或者在<ControlScript>里指定正确的相对路径。
  • 编译安装包时,QT Installer Framework会自动打包同目录下的脚本,除非你在package.xml里做了特殊排除,无需额外配置。

内容的提问来源于stack exchange,提问作者Alberto Valero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:32:06