小编tom*_*mak的帖子

某些标点符号与Pattern.UNICODE_CHARACTER_CLASS标志启用不匹配

启用Pattern.UNICODE_CHARACTER_CLASS标志时,我与匹配一些标点符号字符有关。

对于示例代码如下:

final Pattern p = Pattern.compile("\\p{Punct}",Pattern.UNICODE_CHARACTER_CLASS);
final Matcher matcher = p.matcher("+");
System.out.println(matcher.find());
Run Code Online (Sandbox Code Playgroud)

尽管文档中明确指出p {Punct}包含!! ##%&'()* +,-。/ :; <=>?@ [] ^ _`{| }〜

除“ +”号外,后面的字符$ + <=> ^`|〜也会发生相同的问题。

删除Pattern.UNICODE_CHARACTER_CLASS后,它可以正常工作

我将对这个问题有任何提示

java regex unicode pattern-matching java-8

7
推荐指数
2
解决办法
446
查看次数

如何在启用自动隐藏的情况下检测Windows中任务栏的高度和方向?

我正在使用Qt,我想做的是在Windows系统托盘中的图标上显示自定义弹出窗口。我可以通过使用screengeometry()和availableGeometry()之间的差异,使用geometry()和任务栏高度来获取图标坐标。因此,可以正确分配弹出窗口,并且对于不同的任务栏方向,该弹出窗口不会与任务栏重叠(例如,当任务栏位于屏幕左侧或屏幕顶部时)。

当打开任务栏的自动隐藏功能时问题开始,然后显然availableGeometry返回与screenGeometry相同的值,而我再也找不到任务栏的高度了。这将导致弹出窗口与任务栏重叠,甚至显示在错误的位置。

我的问题是:启用自动隐藏后,如何在Windows中正确检测任务栏的方向和大小?我应该使用某些winapi函数,还是可以仅在Qt中(最好)使用它?

c++ windows qt taskbar

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

如何检测自动隐藏的任务栏是否可见?

目前,我需要在C ++ / Qt中检测设置为“自动隐藏”的任务栏在屏幕上是否可见。我已经尝试了以下解决方案,但是没有成功:

  1. 使用uState =(UINT)SHAppBarMessage(ABM_GETSTATE,pabd)检查自动隐藏状态,这仅返回是否设置了自动隐藏属性

  2. 使用SystemParametersInfo(SPI_GETWORKAREA,0,&rectWorkArea,0)获取工作区;不幸的是,当任务栏设置为“自动隐藏”时,工作区始终是整个屏幕的大小,即使它实际上在屏幕上可见

  3. 使用SHAppBarMessage(ABM_GETTASKBARPOS,&abd);获取AppBarData;使用此功能,我可以同时获取任务栏的大小和坐标,但是,即使隐藏了任务栏,也总是将其返回,就好像任务栏是可见的一样。

因此,使用这些方法我无法分辨,是否在给定的时间在屏幕上显示了启用“自动隐藏”的任务栏:-(

我将不胜感激任何帮助 :-)

c++ windows qt taskbar

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

标签 统计

c++ ×2

qt ×2

taskbar ×2

windows ×2

java ×1

java-8 ×1

pattern-matching ×1

regex ×1

unicode ×1