Qt Design Studio是否有菜单栏(Menu Bar)Widget?求助查找方法
在Qt Design Studio中找到菜单栏组件的方法
首先明确:Qt Design Studio里并没有直接提供可视化拖拽的Menu Bar组件,但你完全可以通过两种方式实现菜单栏功能,和Qt框架里的QMenuBar逻辑一致:
方式一:手动编写QML代码
直接在QML文件里添加MenuBar和Menu、MenuItem组件,示例代码如下:
import QtQuick.Controls 2.15 Window { visible: true width: 640 height: 480 title: qsTr("Menu Bar Demo") MenuBar { Menu { title: qsTr("文件") MenuItem { text: qsTr("打开") onTriggered: console.log("打开文件") } MenuItem { text: qsTr("保存") onTriggered: console.log("保存文件") } MenuSeparator {} MenuItem { text: qsTr("退出") onTriggered: Qt.quit() } } Menu { title: qsTr("编辑") MenuItem { text: qsTr("复制") onTriggered: console.log("复制内容") } MenuItem { text: qsTr("粘贴") onTriggered: console.log("粘贴内容") } } } }
这段代码会创建标准的菜单栏,和你熟悉的Qt框架中的菜单栏功能完全一致。
方式二:在Qt Creator中设计后导入到Design Studio
如果你习惯可视化拖拽操作,可以在Qt Creator的Qt Designer中(针对Widget项目)设计菜单栏,然后将对应的逻辑转换为QML,或者直接在Qt Creator的QML设计器里添加MenuBar组件,再将项目导入到Qt Design Studio中继续编辑。
为什么Design Studio里没有可视化的Menu Bar组件?
确实是因为现代化UI设计趋势,很多现代应用倾向于使用汉堡菜单、工具栏按钮替代传统顶部菜单栏,所以Qt Design Studio默认的组件库中没有把Menu Bar放在可视化拖拽面板里,但这不代表它不支持——QML的MenuBar组件依然是Qt Quick Controls的标准组件,完全可以通过代码或间接方式使用。
内容的提问来源于stack exchange,提问作者shortnr
相关产品推荐
相关产品推荐

