【问题标题】:hide section in nsis installer conditionally on choice of radiobuttons根据选择的单选按钮有条件地隐藏 nsis 安装程序中的部分
【发布时间】:2011-04-30 13:43:39
【问题描述】:

如何在 MUI NSIS 安装程序组件页面对话框中选中或取消选中 RadioButtons 时有条件地隐藏部分。

我添加了 2 个 RadioButtons、DEMO 和 BACKUP。

当用户选择 DEMO RadioButton 时,显示的 Section 将是“INSTALL DATA OR NOT”,用户可以选中或取消选中,&“BACKUP DATA OR NOT”部分将被隐藏。

当用户选择 BACKUP RadioButton 时,显示的部分将是“BACKUP DATA OR NOT”,用户可以选中或取消选中,&“INSTALL DATA OR NOT”部分将被隐藏。

如果我使用 - 符号,则“是否安装数据”部分对于 BOTH RADIOBUTTON CHOICES 是隐藏的,即对于 DEMO 和对于 UPDATE 也是,请帮助。

另外,还有 SelectSection 或 UnSelectSection 的功能,但它们不会隐藏 Section,这正是我想要的,即 Section 应该被隐藏和取消选中。

【问题讨论】:

    标签: installation hide nsis nsis-mui


    【解决方案1】:

    隐藏的部分没有名称,因此您需要为其命名才能再次可见:

    !include Logiclib.nsh
    !include Sections.nsh
    
    page Components InitComponentsPage
    
    !define INSTALLSECTIONNAME "Install"
    section "" SEC_INSTALL
    sectionend
    
    !define BACKUPSECTIONNAME "Backup"
    section "" SEC_BACKUP
    sectionend
    
    Function InitComponentsPage
    ${If} $InstallType == BACKUP
        SectionSetText ${SEC_BACKUP} "${BACKUPSECTIONNAME}"
        !insertmacro UnSelectSection ${SEC_INSTALL}
        SectionSetText ${SEC_INSTALL} ""
    ${Else}
        SectionSetText ${SEC_INSTALL} "${INSTALLSECTIONNAME}"
        !insertmacro UnSelectSection ${SEC_BACKUP}
        SectionSetText ${SEC_BACKUP} ""
    ${EndIf}
    Functionend
    

    【讨论】:

    • 先生,我想跳过组件页面,如果 $InstallType ==DEMO,我该怎么做?
    • @sqlchild: 要跳过页面,请在页面预回调函数中调用 Abort
    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2017-12-30
    • 2018-02-27
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多