问题描述
我能够在某种程度上基于 Qt Installer Framework 自定义我的安装程序。
gui.clickButton(buttons.NextButton)
Controller.prototype.DynamicMyPageCallback = function()
{
var currentWidget = gui.currentPageWidget();
if (currentWidget != null)
{
currentWidget.complete = false
}
}
接下来我想做的是移除包含 Next
和 Quit
按钮的底部面板。这可能吗?
解决方法
您可以在类的构造函数中使用下面的代码来删除按钮。如果您希望在用户按下时触发其他内容,请查看文档。
ui->buttonBox->clear();
,
在 C++ 世界中,每个 QWidget 都提供对其子项的访问。
https://doc.qt.io/qt-5/qobject.html#children
您可以通过霰弹枪爆炸 QObjectList *widgetList = findChildren();
在调试器中逐步查看每个孩子是什么
您正在寻找一个 buttonGroup 或 buttonBox。一旦你有了指向它的指针,你就可以简单地 ->hide()
如果您创建一个已知位于“底部面板”中但不在按钮中的 QPoint() 对象,则可以消除一些神秘感。
https://doc.qt.io/qt-5.14/qwidget.html#childAt-1
Qt 是开源的。你可以下拉代码
https://download.qt.io/archive/qt/
找到构造你想要的页面的源文件,并查看它的构造函数。这将告诉您按钮框/组是什么以及它是否有名称。
很可能有一些简单的东西,比如buttons.hide 或buttons.visible = false
我不使用 QML 或 JavaScript
我相信你的“按钮”来自 ButtonGroup https://doc.qt.io/qt-5/qml-qtquick-controls2-buttongroup.html
因此您只需要在该页面上找到分配给您的 ButtonGroup 的 ID,然后 buttonGroupId.visible = false
如果您需要真正的帮助,您必须发布一个链接到完整编译和运行的代码。您还需要指明您在哪个平台上。
进行更多挖掘后进行编辑:
您仍然需要通过一些 zip 文件或其他方式发布完整代码,但这里是文档路径。
https://doc.qt.io/qt-5/qml-qtquick-controls2-buttongroup.html#buttons-prop
https://doc.qt.io/qt-5/qml-qtquick-controls2-abstractbutton.html
https://doc.qt.io/qt-5/qml-qtquick-controls2-abstractbutton-members.html
当你一路追踪到 AbstractButton 时,你就会发现对你来说已经足够好的东西了。
父:项目
https://doc.qt.io/qt-5/qml-qtquick-item.html#parent-prop
如果buttons.NextButton.parent != null 那么你可以buttons.NextButton.parent.visible = false