我正在开发一个 Ubuntu SDK,旨在用于桌面和触摸界面。显然,从窗口底部向上滑动的菜单对于桌面来说不是一个很好的界面。
我希望能够将那里的项目冗余地添加到普通应用程序菜单 ( appmenu
) 中,以便在桌面上使用。如何在 QML 应用程序中做到这一点?我没有找到任何文档,只有这里提到了 Qt 中的可能性:
http://blog.qt.digia.com/blog/2011/08/26/toplevel-windows-and-menus-with-qt-quick/
编辑:我发现问题中提到了所需的库Qt Quick Controls 可以在 Ubuntu 13.10 上使用吗? 。如果我能将其转化为解决方案,我会发布答案。
编辑:添加ubuntu-sdk-team/ppa
和canonical-qt5-edgers/qt5-proper
PPA 并升级后,我仍然没有QtQuick.Controls
。是的,我正在运行 Trusty。
更新:现在看来这些软件包已在 Trusty 中就位,并且导入QtQuick.Controls
工作正常。但是,当我向应用程序添加菜单时,它没有任何效果。没有出现菜单。有什么建议吗?
更新:自 14.04 发布以来,我再次尝试,但没有任何变化。我试过Ubuntu.HUD
(此代码中的数独应用程序)、actions
属性(稍后在数独应用程序,甚至尝试使用ApplicationWindow
(不存在),但菜单根本没有出现在窗口中,从底部向上拖动菜单不会显示触摸 HUD。由于APP_ID
运行时总是出现“必须提供环境变量,否则 HUD 将不起作用”的错误,所以我从设置了 APP_ID 的终端运行它。仍然没有结果。
Window {
visible: true
width: units.gu(40)
height: units.gu(75)
title: "My App"
MenuBar {
Menu {
title: "File"
MenuItem {
text: "Quit"
}
}
}
MainView {
id: root
// objectName for functional testing purposes (autopilot-qt5)
objectName: "mainView"
// ...
答案1
在 Ubuntu 14.04 LTS 周期中,从 Qt 5.0 到 5.2 的过渡是一个漫长的过程(在撰写本文时仍然如此),比许多人预期的要漫长得多。
QtQuickControls
适用于 Qt >= 5.1,因此最终的 14.04 版本应该允许您使用它来设计应用程序appmenu
。
答案2
我在使用 Ubuntu 14.04 时也遇到了这个问题。我创建的 Qt Quick 应用程序中没有出现菜单,甚至未经修改的模板“Hello World”应用程序也不会显示菜单(无论是在应用程序窗口中,还是在屏幕顶部的 Ubuntu 菜单中)。
对我来说,解决方案是使用 Linux 的二进制安装程序安装最新 Qt 包的个人副本(http://qt-project.org/downloads)其中包括Qt 5.2.1和Creator 3.1.0。
我按照建议将其安装到 $HOME/Qt 中。
当我运行最新的 Qt Creator 和软件包时,我现在看到应用程序菜单作为传统的 Windows 样式菜单出现在应用程序窗口中。