小编PiF*_*ace的帖子

GUI 在低级别上检测哪个元素被单击的常见方法有哪些?

我一直在尝试到处搜索这个问题,但我发现的所有问题都与高级别的问题有关,例如“如何知道正在单击哪个 HTML”。这不是我要找的东西。我正在寻找更底层的细节。

假设有人正在尝试为给定系统编写 GUI 库。另外,假设该程序员已经设法在屏幕上显示图形、文本、按钮等。现在,他们希望实现用户与该界面交互的方法,更具体地说,使用鼠标单击(或者可能是触摸输入)。

GUI 引擎运行的系统能够告诉他们何时发生点击,以及点击发生在屏幕上的哪个 (x, y) 点。要查找屏幕上的哪些元素被单击,一个简单的方法是循环遍历每个元素并测试每个元素。但这是现有 GUI 中通常的做法吗?例如,这是浏览器显示 HTML 页面时所做的事情吗?这就是操作系统对其 GUI 和窗口所做的事情吗?他们是否使用更复杂的数据结构(例如 R 树)?他们如何处理移动元素?

这个问题并不特定于任何软件,我只是想知道在 GUI 开发的背景下通常如何解决这个问题。

language-agnostic algorithm user-interface data-structures

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

ionic - 在本地通知插件中更改图标的正确方法是什么?

我正在尝试使用本机本地通知插件,但在更改通知的默认图标时遇到了麻烦。

到目前为止,我已经用两部手机来测试这个,两部安卓设备:第一部是奥利奥(8.1.0),另一部是牛轧糖(7.0)。我正在使用 Ionic CLI 4.5.0,并且我知道它的包装器与插件不兼容,如插件存储库中所述。

根据这个答案的建议,我已经为图标 URI 尝试了很多路径,但似乎没有任何效果。

在提供者中,这是代码的相关部分:

declare var cordova: any;
...
// inside a function that takes "id", "nome" and "tempo" as parameters:
cordova.plugins.notification.local.schedule({
    id: id,
    title: nome,
    text: "Sua atividade agendada, \"" + nome + "\", está prestes a começar!",
    at: new Date(tempo),
    foreground: true,
    icon: 'res://icone-notif.png',
    smallIcon: 'res://icone-notif-24.png'
});
Run Code Online (Sandbox Code Playgroud)

在我的 config.xml 中,我添加了以下几行:

<platform name="android">
    ...
    <resource-file src="resources/android/icon/icone-notif-24.png" target="res/icone-notif-24.png" />
    <resource-file src="resources/android/icon/icone-notif.png" target="res/icone-notif.png" />
</platform>
Run Code Online (Sandbox Code Playgroud)

(我已经检查了每个文件,它们被正确放置在我项目的“res”文件夹中)

通知图标应该显示为我保存在这些文件夹中的图像,但我得到的只是默认的白色方块。

android cordova ionic-framework

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

Haskell - 有没有办法限制给定函数的执行时间?

假设我在 Haskell 中有一个函数,它可能并不总是终止。如果计算时间太长,有没有办法让程序自行停止?

例子:

import qualified Data.Map as Map

walkmap :: Int -> Map.Map Int Int -> Int
walkmap x m = case Map.lookup x m of
  Nothing -> x
  Just y -> walkmap y m

main :: IO ()
main = do
  let ma = Map.fromList [(0,1), (1,2)]
  let mb = Map.fromList [(0,1), (1,0)]
  print $ walkmap 0 ma
  print $ walkmap 0 mb
Run Code Online (Sandbox Code Playgroud)

walkmap ma 0应该立即返回 2,但walkmap mb 0会永远循环。我知道无法确定该函数是否会停止,我想知道的是是否有办法为该计算设置时间限制(例如 10 秒)。

haskell

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

Apache Spark - 如何在 3 之后定义 UserDefinedAggregateFunction?

我使用的是 Spark 3.0,为了将用户定义的函数用作窗口函数,我需要一个UserDefinedAggregateFunction. 最初我认为使用 newAggregatorudaf可以解决这个问题(如此处所示,但udaf返回 a UserDefinedFunction,而不是 a UserDefinedAggregateFunction

自 Spark 3.0 起,UserDefinedAggregateFunction已弃用,如此处所述尽管仍然可以在周围找到它

所以问题是:Spark 3.0 中是否有正确的(未弃用的)方法来定义适当的UserDefinedAggregateFunction并将其用作窗口函数?

scala apache-spark apache-spark-sql

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