qt - QML:Qt.labs.platform.MenuItem 的图标
问题描述
有一个插件叫Qt.labs.platform
. 除其他外,它还提供带有菜单的托盘图标。该菜单有一个MenuItem
s 列表。任何菜单项都可能有一个图标,该图标将显示在项目文本的左侧。
有两种设置图标的方法,但都不适合我:
1) 版本 1.0 定义iconSource
和iconName
属性。
静默不起作用,只是不显示图标。
2) 修订版 1.1(声明为Q_REVISION(1)
)引入icon.name
和“子属性”(不确定它的正确名称是什么?icon.source
)icon.mask
使 QML 引擎失败并显示一条消息:
"MenuItem.icon" is not available in Qt.labs.platform 1.1.
我都试过了import Qt.labs.platform 1.1
和1.0
。
我是否遗漏了 QML 修订机制中的某些内容,或者这是 Qt 中的错误?
A在qquickplatformmenuitem_p.hMenuItem
中声明并在qquickplatformmenuitem.cpp文件中定义。
我正在使用 ArchLinux、KDE/Plasma。其他一些应用程序(如基于电子的)确实在菜单中正确显示了它们的图标。
UPD报告为Qt 错误。
解决方案
我不知道你究竟在做什么来实现你的目标,因为没有最小的可重复的例子。
但是看看这里
import QtQuick 2.12
import QtQuick.Window 2.12
// import Qt.labs.platform 1.1
import QtQuick.Controls 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle {
width: 200
height: 200
anchors.centerIn: parent
MenuBar {
id: menuBar
Menu {
id: firstMenu
MenuItem {
icon.name: "download"
icon.source: "icons/cloud-down-icon.png"
}
MenuItem {
text: qsTr("Rewrap Paragraph")
onTriggered: rewrapParagraph()
}
}
}
}
}
注意:将您的图标放在icons
项目文件夹中的文件夹中。
如果你点击菜单,那么你应该得到一个包含两个项目的下拉菜单,第一个只是一个没有文本的图标(你可以自己包含一些文本),第二个项目只是一个文本。
推荐阅读
- facebook - 我的应用程序如何读取一组测试用户的组提要/帖子?
- sp - 创建一个不规则形状的凸包
- apache - 尝试按照教程在 Debian Apache AWS Lightsail 实例上设置 SSL/TLS 证书,但仍然无法正常工作
- java - 如何将 RocksDB 数据移动到新目录?
- java - 尝试导入一个库并最终找到 ID 为“com.android.application”的插件未找到
- c++ - 格式化 .txt 文件中的字符串 (C++)
- openshift - 与 pod 3.11 不同的部署文件的 openshift UID 权限
- regex - 扩展正则表达式:查找不属于另一个单词的单词
- powerquery - 如何通过 Power Query 访问 Clockify API
- java - 使用泛型时遇到类型安全警告