在stack-view Qt快速应用程序的内置模板中,工具按钮定义为:
ToolButton {
id: toolButton
text: stackView.depth > 1 ? "\u25C0" : "\u2630"
font.pixelSize: Qt.application.font.pixelSize * 1.6
onClicked: {
if (stackView.depth > 1) {
stackView.pop()
} else {
drawer.open()
}
}
}
使用" text"成员指定unicode字符" \ u25C0"作为图标。为什么要使用" text"而不是" icon"?有什么优势吗?
Qt中是否有完整的unicode列表?我已经尝试了http://www.unicode.org/charts,但它并不总是有用。在texteditor的例子中,还有另一个unicode角色" \ uE800"标记为" icon-bold",但当我在http://www.unicode.org/charts查找时,它标记为"私人使用区"并且没有提供清单。
谢谢!
答案 0 :(得分:0)
为什么要使用" text"而不是" icon"?有什么优势吗?
优点:
您不需要提供图标图片。
应用程序可以在任意数量的不同显示器上运行,每个显示器具有不同的DPI等。这意味着如果您使用位图(例如PNG)资产而不是矢量(例如SVG)资产,则最终需要如果您的目标是高DPI显示,则提供大量资产。例如,要将设备像素比率最高为4的显示器定位:
pause-icon.png
pause-icon@2x.png
pause-icon@3x.png
pause-icon@4x.png
大多数应用程序(例如Sketch)都支持以各种比例因子导出,这使得这更容易,但如果您的目标设备在内存方面受到限制(与嵌入式设备一样),您还需要考虑这些因素额外资产会增加已部署应用程序的大小。
通过使用文字,您可以免费获得平滑缩放。
它会自动使用当前样式的字体颜色。
在Qt 5.10之前,您需要确保图标的颜色对于运行应用程序的每种样式都是正确的。要查看此示例,请比较图像here。 Material样式由于其使用的颜色需要自己的资产,否则一些图标将是例如在黑暗的背景上黑暗。
这意味着上面的资产列表只会增加大小,具体取决于应用程序支持的样式数量。对于大多数应用程序来说,这不是一个问题,因为它们通常带有一种预定义的样式。
然而,从Qt 5.10开始,AbstractButton
具有icon.color
属性,您可以使用它来对图标进行着色,并使用与字体颜色相同的颜色,这意味着您不需要提供这些额外的颜色/样式特定资产。所以这一点与5.10无关。
缺点:
如果不使用特定字体(如stack template中所示),图标最终可能与您的想法不同。
在这种情况下,字体将以应用程序碰巧运行的任何字体呈现。这使您的图标受用户环境的影响;什么是一个漂亮的后箭头看起来可能与预期不同(例如太薄)。
对于Creator,模板创建时的选项是:
现在5.10已经出局,#3可能是更好的选择。
Qt中是否有完整的unicode列表?
不,您需要使用您提到的网站。
在texteditor示例中,还有另一个unicode角色" \ uE800"标记为" icon-bold",但当我在http://www.unicode.org/charts查找时,它标记为"私人使用区"并且没有提供清单。
文本编辑器示例通过fontello使用FontAwesome,这是一个允许您选择特定FontAwesome字符放入最小字体文件的站点。字体文件为here。
您在此示例中看到的Unicode字符是FontAwesome特定的。