ฉันกำลังพัฒนาแอป qml และฉันต้องการวางไอคอนไว้ที่ปุ่มต่างๆ ฉันต้องการใช้ไอคอนมาตรฐานอูบุนตูเพื่อให้ได้รูปลักษณ์ของอูบุนตูที่แท้จริงสำหรับแอพของฉัน ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันกำลังพัฒนาแอป qml และฉันต้องการวางไอคอนไว้ที่ปุ่มต่างๆ ฉันต้องการใช้ไอคอนมาตรฐานอูบุนตูเพื่อให้ได้รูปลักษณ์ของอูบุนตูที่แท้จริงสำหรับแอพของฉัน ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
ชุดไอคอน Ubuntu Touch อย่างเป็นทางการเรียกว่า Ubuntu Mobile และสามารถติดตั้งในubuntu-mobile-icons
แพ็คเกจได้ นี่คือตัวอย่างของไอคอนที่มีให้:
หากต้องการใช้ไอคอนในรหัสของคุณเพียงใช้เส้นทางไปยังไอคอน ตัวอย่างเช่นในการตั้งค่าไอคอนในปุ่มแถบเครื่องมือให้ทำสิ่งที่คล้ายกับสิ่งนี้:
ToolbarButton {
text: i18n.tr("Refresh")
iconSource: Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/reload.svg")
}
เพื่อหลีกเลี่ยงไม่ให้ซ้ำรูทพา ธ ซ้ำแล้วซ้ำอีกฉันมักจะใช้ฟังก์ชั่นเล็ก ๆ ที่เรียกว่าgetIcon
ซึ่งจะคืนค่าพา ธ ที่แท้จริงไปยังไอคอน:
function getIcon(name) {
return Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/" + name + ".svg")
}
ตัวอย่างก่อนหน้านี้จะเป็น:
ToolbarButton {
text: i18n.tr("Refresh")
iconSource: getIcon("reload")
}
ฉันเพิ่งเริ่มเล่นน้ำใน QML แต่ดูเหมือนว่า Ubuntu SDK จะให้วิธีการเข้าถึงไอคอนจากธีมส่วนประกอบของไอคอน นี่คือตัวอย่าง Hello Worldish:
import QtQuick 2.0
import Ubuntu.Components 0.1
MainView {
id: root
objectName: "mainView"
width: units.gu(50)
height: units.gu(75)
property real margins: units.gu(2)
property real buttonWidth: units.gu(9)
Page {
title: i18n.tr("Icons!")
Column {
anchors {
fill: parent
margins: root.margins
}
spacing: units.gu(1)
Icon {
name: "call-start"
width: 48
height: 48
}
Icon {
name: "call-stop"
width: 48
height: 48
}
Icon {
name: "find"
width: 48
height: 48
}
}
}
}
สิ่งนี้จะช่วยให้คุณ:
AFAICT ดูเหมือนว่าจะไม่สนับสนุนไอคอนเต็มรูปแบบที่ได้รับจาก Freedesktop Icon Theme Specification แม้ว่า .....
ชุดรูปแบบเริ่มต้นสำหรับมือถือ Ubuntu คือ Suru และไอคอนตั้งอยู่ /usr/share/icons/suru
สามารถใช้ไอคอนใดก็ได้ตามชื่อ แม้กระทั่งไอคอนนอกชุดไอคอน Suru
หากเป็นไฟล์ /usr/share/icons/suru/actions/scalable/like.svg
รหัสอาจเป็น:
Action {
id: likeAction
iconName: "like" // the files name without file ending
text: "I like this"
}
ซึ่งให้ปุ่มการกระทำพร้อมไอคอนรูปหัวใจ