gpt4 book ai didi

c - 查找然后显示/隐藏 edje 零件

转载 作者:行者123 更新时间:2023-11-30 16:14:28 31 4
gpt4 key购买 nike

我有一个 Tizen Edje 文件,它定义了我的布局。其中一个部分是一张图像,其部分名称为“警告”。该项目在边缘文件中设置为可见,并且按预期显示。

我想使用 C 代码隐藏这部分:

Evas_Object* image_NotSetYet = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(wid->edjeLayout), "warning");
if (image_NotSetYet == NULL) {
dlog_print(DLOG_ERROR, LOG_TAG, "View: Unable to get warning image part");
return;
}
evas_object_hide(image_NotSetYet);

我尝试了许多不同的方法来获取与该部件名称关联的 Evas 对象并将其隐藏。经过几个小时后,我偶然发现了一些我模仿的代码,它似乎有效。我现在可以隐藏(并显示)我的图像部分。

但是,我后来在这个布局中向燕子添加了一个未真实的图像并显示它。突然“警告”部分图像再次显示。为什么?我是否以错误的方式隐藏了“警告”部分?上面的内容有问题吗?

或者,我向下面的燕子添加图像的方式有问题吗?图像(来自文件)将显示,但突然我上面的警告部分也显示:

Evas_Object *img = elm_image_add(wid->edjeLayout);
if (img == NULL) {
dlog_print(DLOG_ERROR, LOG_TAG, "View: Failed to add a image.");
return;
}

// Create an image and set contents to imagefile
char *imageFileName = barcode_filename();
bool isSet = elm_image_file_set(img, imageFileName, NULL);
dlog_print((isSet?DLOG_INFO:DLOG_ERROR), LOG_TAG, "View: %s file [%s] to image",(isSet==EINA_TRUE?"Set":"Failed to set"),imageFileName);
free(imageFileName);
evas_object_show(img);

// Assign the image to the swallow2 part
elm_object_part_content_set(wid->edjeLayout,"swallow2",img);

我尝试将图像添加到“窗口”而不是“布局”,但这似乎并不重要。 (我见过很多矛盾的例子,不知道哪个是对的)我尝试以多种不同的方式将图像设置为“swallow2”部件名称(同样,显示出许多矛盾的方式)。这是问题所在吗?否则,有人可以解释一下出了什么问题吗?

最佳答案

image_NotSetYet 不是图像对象。

Evas_Object* image_NotSetYet = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(wid->edjeLayout), "warning");

指的是“警告”吞下部分对象。 You should never modify the state of the returned object, because it's meant to be managed by Edje, solely.

如果您想按照预期从布局中获取图像指针,您可以使用以下内容。

Evas_Object* image_NotSetYet = elm_object_part_content_get((wid->edjeLayout), "warning")

但是如上所述link描述,图像对象应该由 Edje 管理。您可能会遇到第二个问题,因为它是由 Edje 管理的。所以请使用edje_object_signal_emit处理吞没的图像。

关于c - 查找然后显示/隐藏 edje 零件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57650189/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com