如何删除带有按钮的底部面板?

Posted

技术标签:

【中文标题】如何删除带有按钮的底部面板?【英文标题】:How to remove the bottom panel with buttons? 【发布时间】:2021-05-02 11:13:06 【问题描述】:

我能够在某种程度上基于Qt Installer Framework 自定义我的安装程序。

我能够自动单击按钮以前进到下一页

gui.clickButton(buttons.NextButton)

隐藏后退按钮(通过删除以前的页面)甚至禁用下一个按钮

Controller.prototype.DynamicMyPageCallback = function()

    var currentWidget = gui.currentPageWidget();
    if (currentWidget != null)
    
        currentWidget.complete = false
    

接下来我想做的是移除包含NextQuit 按钮的底部面板。这可能吗?

【问题讨论】:

这和 C++ 有什么关系? doc.qt.io/qtinstallerframework/ifw-cpp-classes.html 您有机会在下面查看我的答案吗? @KcFnMi 【参考方案1】:

您可以在类的构造函数中使用下面的代码来删除按钮。如果您希望在用户按下时触发其他内容,请查看文档。

ui->buttonBox->clear();

【讨论】:

【参考方案2】:

在 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

【讨论】:

以上是关于如何删除带有按钮的底部面板?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除带有大标题的导航栏的底部边框?

JavaFX - 分页:如何隐藏底部(控制)面板并用页面占据其区域?

如何让那些底部的小视图出现在 iOS SDK 中?

如何使用列表迭代地添加带有删除按钮的标签,可以删除它们

删除sencha中的项目后如何更新面板

PHP:如何从按钮中删除带有 onclick 事件的 cookie