如何删除带有按钮的底部面板?
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
接下来我想做的是移除包含Next
和Quit
按钮的底部面板。这可能吗?
【问题讨论】:
这和 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
【讨论】:
以上是关于如何删除带有按钮的底部面板?的主要内容,如果未能解决你的问题,请参考以下文章