มีไอคอนมาตรฐานสำหรับ qml-app-development หรือไม่


11

ฉันกำลังพัฒนาแอป qml และฉันต้องการวางไอคอนไว้ที่ปุ่มต่างๆ ฉันต้องการใช้ไอคอนมาตรฐานอูบุนตูเพื่อให้ได้รูปลักษณ์ของอูบุนตูที่แท้จริงสำหรับแอพของฉัน ฉันจะทำสิ่งนี้ได้อย่างไร


คุณต้องการใช้ไอคอนจากคนอื่น? ระวังเรื่องลิขสิทธิ์! ไอคอนเป็นงานที่สร้างสรรค์ มันมีลิขสิทธิ์ ดังนั้นคุณควรตรวจสอบลิขสิทธิ์ลิขสิทธิ์ที่มาพร้อมกับไอคอนนั้นก่อน ฉันมีหน้าเว็บนี้ในบุ๊คมาร์คของฉัน มันเกี่ยวกับ Canonical - ธุรกิจที่อยู่เบื้องหลัง Ubuntu - จ้างผู้ชาย 'Faenza' เพื่อสร้างไอคอนใหม่


แน่นอนว่า API ต้องให้วิธีการรับไอคอนจากชุดรูปแบบทั้งระบบ ทำไมสิ่งนี้จึงถูกปิด
andrewsomething

คำตอบ:


8

ชุดไอคอน Ubuntu Touch อย่างเป็นทางการเรียกว่า Ubuntu Mobile และสามารถติดตั้งในubuntu-mobile-iconsแพ็คเกจได้ นี่คือตัวอย่างของไอคอนที่มีให้:

ไอคอน Ubuntu Mobile Action

หากต้องการใช้ไอคอนในรหัสของคุณเพียงใช้เส้นทางไปยังไอคอน ตัวอย่างเช่นในการตั้งค่าไอคอนในปุ่มแถบเครื่องมือให้ทำสิ่งที่คล้ายกับสิ่งนี้:

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")
}

3
คำตอบนี้จะต้องมีการปรับปรุง วิธีที่ถูกต้องและเป็นทางการในการใช้ไอคอนคือ iconName: "reload" หรือ iconSource: "image: // theme / reload"
nik90

4

ฉันเพิ่งเริ่มเล่นน้ำใน 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
        }

        }
    }
}

สิ่งนี้จะช่วยให้คุณ:

qml ไอคอน-hello โลก

AFAICT ดูเหมือนว่าจะไม่สนับสนุนไอคอนเต็มรูปแบบที่ได้รับจาก Freedesktop Icon Theme Specification แม้ว่า .....


0

ชุดรูปแบบเริ่มต้นสำหรับมือถือ 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"
}

ซึ่งให้ปุ่มการกระทำพร้อมไอคอนรูปหัวใจ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.