禁用QT安装程序框架中的本机下一个按钮
Disable native Next button in Qt installer framework
我必须在我的自定义页面上通过installscript.qs文件禁用标准下一个按钮。
我可以通过.QS脚本禁用自己的按钮(我在.UI文件中创建的按钮): widget.myButton.setEnabled(false);
这个人表明,本机按钮表示为枚举,我不能将它们与它们相同的方式禁用。
控制器脚本手册页面显示了与本机按钮的一些交互。像gui.clickButton(buttons.NextButton)
。我经历了整个gui对象的人,没有发现任何有用的东西。
QT安装程序框架具有我需要的Next按钮逻辑的本机许可检查页面,但是我还没有找到任何手动执行此操作的示例。(许可页面工作是因为其默认许可页面及其内部框架内的逻辑)。
最后,我找到了可能对我有用的ISComplete()方法,但它适用于C API,而不是QS。那么如何通过installscript.qs文件禁用本机按钮?
如果其他人在这里结束时,我终于找到了一个清洁的解决方案:动态窗口小部件具有属性complete
,可以更改以启用和禁用"下一个"按钮。将其设置为false
以禁用按钮。
Controller.prototype.DynamicMyWidgetCallback = function()
{
var currentWidget = gui.currentPageWidget();
if (currentWidget != null)
{
currentWidget.complete = false
}
}
我发现的唯一解决方案是呼叫installer.setValue("canContinue" "false");
然后使用gui.pageById(QInstaller.TargetDirectory).entered.
connect(Component.prototype.targetPageEntered);
在targetPageEntered
中检查我们的值:
Component.prototype.targetPageEntered = function () {
if (installer.value("canContinue") != "true") {
gui.clickButton(buttons.BackButton);
QMessageBox.information("someid", "Installer",
"You must do smth to continue", QMessageBox.Ok);
}
}
当然,当用户完成所需的操作时,您需要更改installer.value
。
- 从C++本机插件更新Vector3数组
- GCC本机矩阵运算库
- VC++本机单元测试,找不到调试符号
- 在这种情况下,java对象是否可以调用本机函数
- 重新定位图像时如何前进到下一个内存块
- NDK - 包含一个预构建的库,并在 Android 项目中调用本机函数
- 如何在Java中包含一个库,该库在C 中具有Java中具有本机绑定(库)的库
- 禁用QT安装程序框架中的本机下一个按钮
- 如何在 C++ 中创建一个类,使其像本机 int 类一样工作
- Dll 注入 - 在另一个进程中编写本机代码
- JNI-我可以在不为本机插件调用System.loadLibrary的情况下使用RegisterNatives吗
- C# 应用(通过本机 C++ DLL)与另一个使用嵌入 Lua 的 DLL 的应用之间的 IPC
- 提升线程 检查当前线程是否等于另一个本机句柄
- 本机C++dll与C#项目在一个解决方案中
- 如何在Qt/C++中构建一个自定义的本机OSX webkit小部件
- 我需要root权限才能在Android下执行本机应用程序
- 在不关闭本机处理程序的情况下销毁Boost Asio套接字
- 在一个程序集中从本机调用c#
- 使用本机C++、托管 C++ CLI 和 C# 解决方案在混合模式下进行调试
- 有没有可能在没有for循环的情况下将本机结构数组封送到托管数组?