gpt4 book ai didi

JavaFx 菜单项加速器 Javafx css

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:08 25 4
gpt4 key购买 nike

我尝试将 JavaFX 菜单项标签图标化。我为菜单项标签和加速器标签复制了图标。这是一张说明我的问题的图片。

enter image description here

这是 Javafx CSS 代码:

.menu-item > .label {

}

#miRestore .label{
-fx-graphic: url("/img/Upload_16x16.png");
}
#miBackup .label {
-fx-graphic: url("/img/Flash%20Disk_16x16.png");
}
#miClose .label {
-fx-graphic: url("/img/Delete_16x16.png");
}

#miSettings .label {
-fx-graphic: url("/img/Settings_16x16.png");
}

#miRegistre . label{
-fx-graphic: url("/img/Help_16x16.png");
}

最佳答案

我找到了一个可靠的解决方案:在 Scene Builder/FXML(无论你喜欢什么),将样式类(不是 id)附加到每个你想要有图标的菜单项。现在将样式表添加到菜单栏,在其中为每个带有图标的项目放置以下 CSS:

.yourClassName > .label{
-fx-graphic: url("yourImageUrl");
}

在 CSS 文件的末尾,添加以下内容以删除所有第二张图片:

.context-menu .accelerator-text{
-fx-graphic: none;
}

这样做是将每个 -accelerator-text 的 -fx-graphic 设置为“无”。所以它基本上再次删除了图像。

现在您的菜单项文本前面将只有图标,而不是加速器文本。为了让您具体了解这是如何完成的,我为您做了一个小例子: sample

这是将以下 CSS 样式表添加到我的菜单栏的结果,并将相应的 CSS 样式类添加到我的菜单项中:

.newIcon > .label{
-fx-graphic: url("px16/file.png");
}
.openIcon > .label{
-fx-graphic: url("px16/folderEmpty.png");
}
.closeIcon > .label{
-fx-graphic: url("px16/minus.png");
}
.saveIcon > .label{
-fx-graphic: url("px16/save.png");
}
.saveAsIcon > .label{
-fx-graphic: url("px16/folder.png");
}
.quitIcon > .label{
-fx-graphic: url("px16/error.png");
}
.context-menu .accelerator-text{
-fx-graphic: none;
}

这是我在 StackOverflow 上的第一个回答,我希望这对某人有所帮助。

关于JavaFx 菜单项加速器 Javafx css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36583682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com