我有时希望光标显示为横跨整个屏幕的十字线(一条垂直线,一条水平线)。我需要它,因为我经常查看统计图,并且希望能够快速读取给定点的近似值。
有没有简单的方法可以实现这一点?
我当前的系统:Ubuntu 16.04 LTS,带有 Unity。
答案1
有一个类似问题几年前。
接受的答案有四项建议:
最好的选择
所有这四个建议都应该进行调查,但第三个建议带来了一个很有前途的应用程序:缩放选项对话框(通用访问):
图 2.显示“十字线”选项卡的缩放选项对话框。
十字线开关
标有“十字线”的开关可切换十字线的显示。
与鼠标光标重叠
勾选“重叠鼠标光标”复选框后,十字线将与鼠标指针相交。取消勾选后,十字线将在与鼠标光标相交前结束。
厚度
厚度滑块决定十字线的宽度。范围是 1 到 100 像素。
长度
长度滑块决定十字准线的长度。范围从非常短到屏幕尺寸的几分之一,再到延伸到屏幕边缘的长度。
颜色
颜色按钮启动颜色选择器对话框来设置十字线的颜色和透明度。
分步说明
分步说明(使用Gnome 2.2) 由英国广播公司 (BBC) 撰写。
以下是该网站说明中的几张屏幕截图:
Ubuntu Wiki 上有为 Unity 和 Gnome 桌面环境安装 Orca 的说明这里。 然而统一没有放大镜和十字准线的辅助技术功能。您必须使用 Gnome DE 才能使用这些功能。来源。
缩放选项对话框是ÆGIS(安大略省)项目. 该项目由安大略省经济发展和创新部和ÆGIS(欧洲)项目。您还可以访问这些网站以获取更多说明。
答案2
这不完全是您要求的,但您可以使用screenruler
。
这是一把可以在屏幕上移动的标尺,用于测量像素。您可以将其旋转 90°。
因此,这是一种“手动”方法,但您将得到您所要求的,能够在绘图上查找值,但要获得 x 和 y 值,您必须手动旋转标尺。
答案3
- 制作图像具有透明背景和十字准线,大小适合您的屏幕。
在您最喜欢的图像演示应用程序中打开它,或者可能display crosshair.png
sudo apt install imagemagick
qiv -p YourImage.png
(显示是 ImageMagick 的一部分,安装它)。使用显示图像位于其他窗口上方。display
可以工作,但效果不佳。- 移动通过 Alt+LMB [鼠标左键] 单击图像的一部分(您可能需要在图像中制作一个手柄以使其更容易,对于我的图像,您必须单击实际的十字线本身。
现在,通过单击最大化窗口将图像置于前台;通过最小化隐藏图像。使用 Alt+鼠标移动图像。如果您得到棋盘确保你有 c,而不是透明度在 WM 中启用合成功能,并且您在启动时使用了 -p 标志qiv
。
图像:我的屏幕是 1650x1080,所以我应该使用 3301x2161 的图像,这样我在每个象限中都有一个全屏,由 1px 十字线分隔。(也许你想把它翻倍,并且有一个 3px 十字线来考虑抗锯齿;它可以是灰度的,文件大小应该压缩到几乎没有?)
我做了我的形象作为 96 dpi(我的屏幕分辨率)的 PNG,inkscape
带有 3px 宽的十字线,不透明度为 80%。
对我来说很管用。你可以创建快捷方式打开图片(运行qiv -p /path/to/image
)。您还可以添加像素比例用于测量。
答案4
这是我一直想要的东西。这是我今天受这个问题启发后编写的一个实现(需要 Tcl/Tk):
#!/usr/bin/env wish
# Full-screen crosshairs
wm withdraw .
# We use four toplevels as line segments. The horizontal and vertical crosshairs are split to allow click-through.
toplevel .hlineL
toplevel .hlineR
toplevel .vlineT
toplevel .vlineB
set ::period 16 ;# polling period in milliseconds
set ::colour #7F7F7F
foreach line {.hlineL .hlineR .vlineT .vlineB} {
wm overrideredirect $line 1
wm attributes $line -topmost 1
$line config -bg $::colour
}
proc every {ms body} {
uplevel 1 $body
after $ms [info level 0]
}
proc moveOffscreen {} {
foreach line {.hlineL .hlineR .vlineT .vlineB} {
wm geometry $line 0x0+-1+-1
}
}
every $::period {
lassign [winfo pointerxy .] x y
# Handle being on another screen (-1,-1)
if {$x == -1 || $y == -1} {
moveOffscreen
} else {
# Note special handling of the (literal) edge cases of being at x=0 or y=0 (Tk will draw a pixel there otherwise):
wm geometry .hlineL ${x}x1+[expr {$x <= 0 ? -1 : 0}]+${y}
wm geometry .hlineR [expr {[winfo screenwidth .] - $x}]x1+[expr {$x + 1}]+${y}
wm geometry .vlineT 1x${y}+${x}+[expr {$y <= 0 ? -1 : 0}]
wm geometry .vlineB 1x[expr {[winfo screenheight .] - $y}]+${x}+[expr {$y + 1}]
}
}