问题标签 [efl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
efl - EFL - 自定义按钮
我正在将 C 语言 kiosk 应用程序移植到运行 Ubuntu 16 的 x86 机器上。
我正在使用 EFL GUI 框架(版本 1.20.7)——这对我来说是新的。
我设法向按钮添加了一个图标,但该按钮仍然有一个框架和“按下”的 GUI 动画。
我只希望我的自定义按钮图像可见,可能在两个图像之间切换:“按下”和“未按下”(在匹配事件时,通过配置......也许是边缘???)。
如果它具有相关事件的回调,我不介意使用任何小部件(图像等)。
谢谢。
efl - EFL - 窗口层次结构
我正在将 C 语言 kiosk 应用程序移植到运行 Ubuntu 16 的 x86 机器上。
我正在使用 EFL GUI 框架(版本 1.20.7)——这对我来说是新的。
GUI 非常简单:几个屏幕,每个屏幕上都有背景图像、一些按钮、标签和文本条目。根据应用程序逻辑,相关屏幕被提升,可见。我这样做了。
我的问题:所有子窗口都应该有一个根父窗口(容器)吗?至少在我的简单设计中?
我浏览了许多示例程序,但都非常具体,没有一个具有更大的 GUI。
令我困惑的另一件事是,小部件是通过根窗口创建的,即使它们被插入/定位在子容器中(取自 EFL 文档,test_button.c):
谢谢。
tizen - Tizen Native:未调用硬件按钮的回调集
我使用以下代码设置了硬件按钮 Back 和 More 的回调:
但是,它从来没有被调用过。
注意:我使用了一个专门创建_eext_ctxpopup_back_cb
的,写入调试日志来检查它是否被调用,而不是标准的eext_ctxpopup_back_cb
。我也试过eext_ctxpopup_back_cb
了。
使用此代码,当我点击硬件按钮(返回或更多)时,它会调用为主窗口设置的回调。_eext_ctxpopup_back_cb
永远不会被调用!
这是代码,它为主窗口设置回调:
因此,看起来实际上并没有为 Ctxpopup 设置回调,或者 Ctxpopup由于某种原因eext_object_event_callback_add()
没有接收EEXT_CALLBACK_BACK
和事件。EEXT_CALLBACK_MORE
我eext_object_event_callback_add()
在 Tizen Native API 文档和许多示例应用程序中看到了 with Ctxpopup 的用法,所以我认为它应该可以工作,但事实并非如此。
请指教。
更新:
我将尚未准备好的应用程序部署到 Tizen 设备上,“返回”按钮在那里工作!所以,这是调试环境或模拟器中的东西(它在模拟器中不起作用)。
c - 如何在 Enlightment 库中手动折叠框架
我正在为用户界面使用 Enlightment 库(C api)。我想以编程方式折叠框架,但是该功能似乎不起作用:
当我触发该功能时,我收到一条错误消息:
linux - 是否可以在不反汇编或使用 grep 或字符串的情况下从 ELF 映像文件中获取内核版本?
我有一个 vmlinuz ELF 图像文件。我需要从图像文件中获取内核版本而不反汇编它。是否可以从该压缩图像文件的偏移量中获取内核版本?该文件是 ELF 64 位 MSB 可执行文件,静态链接,未剥离。
touch - 如何为表盘添加触摸 (EFL)
我正在尝试将触摸事件添加到我正在使用 EFL 库开发的表盘中。但是触摸层要么不工作,要么当它工作时,它完全覆盖了我的表盘,尽管它应该是透明的。
我创建监视窗口的代码是:
然后我尝试创建一个透明的手势层和触摸回调(如https://docs.tizen.org/application/native/guides/ui/efl/touch-gesture中所述)。我尝试了两种变体。
变体 A - 我使用为手表创建的相同窗口(获胜)。没有错误,但它不起作用,没有触摸事件:
变体 B - 我为触摸层使用单独的对象 winTouch。它可以工作,但是该层看起来完全不透明,并且看不到表盘:
我究竟做错了什么?
我的项目基于 SDK 示例“计时手表”。实际上有 4 种不同的 Evas_Object:
- evas_object_resize(赢,宽度,高度);
- evas_object_resize(bg, 宽度, 高度);
- evas_object_resize(chronograph_layout, DIAM_SCREEN, DIAM_SCREEN);
- evas_object_resize(parts, size_w, size_h);
我应该在哪里添加手势层?当我将它添加到 1 时,变体 A 什么都不做,变体 B 工作但覆盖了表盘。如果我在其中一个上执行此操作,则两个变体都可以工作,但会覆盖表盘。我不明白为什么,因为我指定的是透明颜色。
编辑:一个新想法:触摸手势层是否只适用于应用程序,而不适用于表盘?
tizen - 我可以更改现有 Evas_Object 的图像文件吗?
我正在使用 EFL 库使用 Tizen Native 开发表盘。使用以下命令创建许多对象后:
我想稍后根据需要更改一些现有对象的图像。这可能吗?我知道我还可以将所有可能的变体加载为单个对象并相应地显示/隐藏对象。但我发现只改变现有对象的图像更简单、更优雅。另外,这也可能使用更少的资源。
我试图这样做:
elm_image_file_set(<part_I_want_to_change_its_image>, "images/newimage.png", NULL));
但是,对象并没有更改为正确的图像,而是消失了。有任何想法吗?
python - 使用术语使用 Matplotlib 生成内联图(EFL byevidence.org)
您好,我一直在尝试在名为 Terminology 的终端模拟器中使用 matplotlib 生成内联图,可以在以下位置找到:
https://www.enlightenment.org/about-terminology.md
此终端仿真器能够使用其自己的特定命令显示内联图像。具体来说,在模拟器内部时,而不是使用
要列出目录中的文件,可以使用特定于术语的命令
列出文件,然后它们就可以交互了,例如,您可以单击它们,它们会在弹出窗口中打开。
也输入命令
将内联打开图像文件。
我知道 jupyter-qtconsole 可以轻松生成我想要的内联图形,但是我非常喜欢术语模拟器。
我目前的理解是 jupyter-console 可以通过设置生成内联图形
在支持内联图像显示的控制台内。但是,当我尝试这样做时,它会继续生成一个外部图形。
具体来说,如果我打开术语并运行
然后输入以下python命令我在标准交互窗口中生成一个外部图形。
的输出
是
当我尝试更改为内联使用
然后检查
再次它仍然返回
尝试再次绘制它会再次在另一个窗口中打开一个图形,然而,有趣的是,它会将应用程序切换到 imagemagick 以查看该图形。
我可以循环这些命令,外部生成的图形将在交互式窗口和 imagemagick 之间继续变化。
如果我对自己在做什么有更好的理解,我会尝试让 jupyter-console %matplotlib 内联命令以某种方式与术语内联图像显示功能连接起来。不幸的是,这是我卡住的地方。任何建议或提示将非常受欢迎。
我的操作系统是 Arch Linux 5.4.79-1-lts,带有 KDE plasmashell 5.20.3 Qt:5.15.2 KDE Frameworks:5.76.0。
tizen - Tizen:设置 EDC 文件中的组中部分的文本
我正在尝试为 Tizen 平台编写一个小部件。小部件的布局在 EDC 文件中描述。我需要一个包含一些文本和图像部分的块,用不同的文本标签重复三次。所以我决定我需要创建一个group
带有所需部分的组件并将其用作item
部分box
:
对于放置在主要布局组中的静态文本部分,content
我使用elm_object_part_text_set(wid->content, part_name, text)
(语言是 C,顺便说一句),但不知道如何设置label1
每个实例的部分文本list_item
。
c++ - direct2d:优化位图上几个 BGRA 矩形的渲染
我正在将一个工具包(即 EFL)引擎从纯 GDI 移植到 Direct2D。更准确地说,我正在添加一个 Direct2D 引擎。目的是拥有比 GDI 更快的引擎。
这个工具包是跨平台的,已经存在很长时间了,所以我不能修改它。我可以使用它提供给我的东西。
它有一个状态完整的画布。当必须绘制窗口的内容时,它会提供一个 BGRA 矩形数组(x、y、w、h 和 BGRA 数据),该数组自上一个窗口内容以来已被修改。
我已经在考虑 DirectComposition 的情况下设置了 D2D(还具有每个像素的透明度,并且 Kenny Kerr 说过它比没有直接组合的情况要快)。
天真的方法是创建一个大小为寡妇大小的位图,并保留它以供渲染。然后我执行以下步骤:
- 我遍历矩形,对于每个矩形,我调用 CopyFromMemory() 来更新位图中的每个矩形区域
- 我打电话给 BeginDraw()
- 我调用 DrawBitmap() 来渲染整个位图
- 我打电话给 EndDraw()
有用。这是完整的代码:
该代码的第一部分是创建和销毁窗口,第二部分处理 Direct2D。函数 render() 渲染背景。函数 draw() 呈现 2 个 BGRA 矩形(实际上是正方形......)。
我的问题:有没有比调用多次 CopyFromMemory() 更快的方法,比如在我的 draw() 函数中,来实现这一点?
谢谢你