小编Fle*_*phy的帖子

我可以为图表标题中的每一行文本指定不同的字体大小吗?

我正在使用 Chart.js 版本:2.7.3

我的图表标题有三行。我想让顶行字体大小为 16,然后第二个 14 和第三个 12。我不确定是否可能,也没有找到方法。

这是我的代码的一部分,它定义了我的图表的选项......

options: {
    title: {
        display: true,
        // Supply the title as an array and each array index prints on a separate line in the title section
        text: ['My Chart','Last Month', 'Local Time'],
        fontSize: 16,
        callbacks: {
            drawTitle: function(pt, vm, ctx, opacity) {
                    console.log("title.length: " + title.length);
                    var title = vm.title;

                    if (title.length) {
                        ctx.textAlign = vm._titleAlign;
                        ctx.textBaseline = 'top';

                        var titleFontSize = vm.titleFontSize;
                        var titleSpacing = vm.titleSpacing;

                        ctx.fillStyle = mergeOpacity(vm.titleFontColor, opacity); …
Run Code Online (Sandbox Code Playgroud)

javascript chart.js

6
推荐指数
1
解决办法
3625
查看次数

注册目录位于网络驱动器上时,Java 7 WatchService不会生成事件

我知道这是在一年前在其他地方被问到的,但我正在寻找任何更新.

我在Java 7中有一个程序,它使用WatchService来监视目录,以便在那里创建新文件.如果我在本地机器上注册一个目录(例如c:\ NewFiles),那么一切都很好.然而,当我试图让它听一个网络驱动器上的文件夹时,它编译并运行但直接退出,因为它似乎没有得到任何事件的通知..这里只是我的代码的一个片段...

 private final WatchService watcher;
 private final Map<WatchKey, Path> keys;
        this.watcher = FileSystems.getDefault().newWatchService();
        this.keys = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

我注册了目录......

String srcDirPath = "G:\\NewFiles";
Path dir = Paths.get(srcDirPath);
    WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
    keys.put(key, dir);
Run Code Online (Sandbox Code Playgroud)

然后在循环结束时检查事件......

        if (keys.isEmpty()) {
                System.out.println("Drive is inaccessible");
                break;
            }
Run Code Online (Sandbox Code Playgroud)

在这里,我总是得到"驱动器无法访问"的警告.我尝试将我的Java文件复制到此网络目录并从那里运行它们但我遇到了同样的问题.

是否可以从本地计算机上运行这样的Watchservice来监听对网络驱动器上目录的更改?我在这里得到了许可或防火墙问题吗?我使用的是Windows 7,很可能网络驱动器也在Windows 7机器上.

network-drive java-7 watchservice

5
推荐指数
0
解决办法
912
查看次数

正则表达式用于必须包含小数点的数字

我正在尝试编写一个正则表达式来验证十进制数字。

  1. 该数字必须包含小数点。
  2. 小数点右边必须有一个数字[0-9]。
  3. 小数点左边最多可以有5位数字,但是除非以零为单位,否则它们不能以零开头。

允许:

  • 0.1(如果后跟小数位,则第一位数只能为零)
  • 10345.0(小数点左边最多5位,小数点右边最多1位)

不允许:

  • 0(无小数位)
  • 10(无小数位)
    1. (小数点右边没有数字)
  • 。(小数点两侧没有数字)
  • .1(小数点左边没有数字)

此正则表达式验证小数点前的内容

^(?:[1-9][0-9]{0,4}|0)$
Run Code Online (Sandbox Code Playgroud)

此正则表达式验证小数点后的内容

^[0-9]{1}+$
Run Code Online (Sandbox Code Playgroud)

我只是不知道如何将两者结合起来,使得小数位是强制性的。

我该如何解决这个问题?

javascript regex

3
推荐指数
1
解决办法
47
查看次数

为什么 Systemd_Wants 不将参数从 udev“删除”规则传递到服务文件?

我正在尝试使用 udev 规则和 systemd 来安装和卸载 USB 闪存盘。

我的解决方案基于此博客中的一个示例,其中 ENV{SYSTEMD_WANTS} 用于“添加”udev 规则。我无法让 ENV{SYSTEMD_WANTS} 用于“删除”规则,因此我最终使用了此博客文章中的示例,该示例从 udev RUN 键运行 systemd 服务文件。

尽管此解决方案有效,但udev 手册页显示:“长时间运行事件进程可能会阻止该设备或相关设备的所有进一步事件。”

这些是我使用的规则...

添加规则:

ACTION=="add", SUBSYSTEM=="block", ENV{ID_TYPE}="disk", \ 
ENV{DEVTYPE}=="partition", ENV{ENV_MOUNT_USB}="MOUNT", \ 
PROGRAM="/usr/bin/systemd-escape -p --template=usb-mount@.service \ 
$env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
Run Code Online (Sandbox Code Playgroud)

删除规则:

ACTION=="remove", SUBSYSTEM=="block", ENV{ID_TYPE}="disk", \ 
ENV{DEVTYPE}=="partition", RUN+="/bin/systemctl start usb-umount@%k.service"
Run Code Online (Sandbox Code Playgroud)

这些是 udev 规则启动的 systemd 服务文件。他们只需执行 bash 脚本来挂载和卸载 USB 闪存盘。

usb-mount@.service

[Unit]
Description=Mount USB Drive on %i
BindTo=%i.device
After=%i.device

[Service]
Type=oneshot
TimeoutStartSec=300
ExecStart=/usr/local/sbin/usb-mount.sh /%I
Run Code Online (Sandbox Code Playgroud)

usb-umount@.service

[Unit]
Description=UnMount USB Drive on %i …
Run Code Online (Sandbox Code Playgroud)

usb mount udev systemd

1
推荐指数
1
解决办法
1332
查看次数