桌面托盘组合的造型撰写

问题描述 投票:0回答:1

我一直在尝试 Compose for Desktop,并且正在尝试弄清楚 Jetbrain 如何设计

Tray
可组合项的样式。我假设这就是他们用来构建 Jetbrains Toolbox 的方法,因为他们写了一篇关于如何将 Toolbox 迁移到 Compose for Desktop 的帖子 (请参阅此处)

默认托盘 Jetbrains 工具箱托盘

图像来自Ubuntu 22;我还没有测试过 Windows 或 Mac。

system-tray tray compose-desktop compose-multiplatform
1个回答
0
投票

您可以使用此库:https://github.com/dorkbox/SystemTray

在你的 gradle 文件中

            implementation("net.java.dev.jna:jna:5.14.0")
            implementation("com.dorkbox:SystemTray:4.4")

你可以在你的 main 函数中像这样使用它:

    val tray = SystemTray.get()
    val resource = this::class.java.classLoader.getResource("AppIcon.png")

    tray.setImage(resource)
    val menu = tray.menu

// add a menu item
    menu.add(MenuItem("Item 1") {
        println("Item 1 selected")
    })

// add a checkbox
    menu.add(Checkbox("Checkbox Item") {
        println("Checkbox Item: $it")
    })

// add a separator
    menu.add(Separator())
// add a submenu
    val submenu = Menu("Submenu")
    submenu.add(MenuItem("Subitem 1") {
        println("Subitem 1 selected")
    })
    menu.add(submenu)
© www.soinside.com 2019 - 2024. All rights reserved.