【问题标题】:How to send a signal to custom theme?如何向自定义主题发送信号?
【发布时间】:2021-04-11 05:53:43
【问题描述】:

在 Tizen 中,通过 elm_layout_signal_emit 从 C/C++ 代码向我的主题 (EDC) 发送信号非常容易。

我有一个名为 myList 的 genlist,我为它创建了一个自定义主题(使用 EDC):

group { "elm/genlist/base/mystyle";
   parts { ... }

   programs {
      program { "myprogram";
         source: "app";
         signal: "mysignal";
         ...
      }
   }
}

我正在将此主题应用于myList:elm_object_style_set(myList, "mystyle")

用这个 genlist 运行myprogram 程序的方法是什么?

我试过了

  • elm_layout_signal_emit: 没用,但 genlist 可能不是布局,我并不感到惊讶。
  • elm_object_signal_emit: 没用,不知道为什么
  • edje_object_signal_emit: 没用,也不知道为什么

【问题讨论】:

    标签: tizen tizen-native-app


    【解决方案1】:

    elm_object_signal_emit 应该可以工作。 但我怀疑这些主题是否正确应用。 如果要将自定义样式设置为对象, 你必须先改变主题。 您可以通过调用扩展您的自定义主题 elm_theme_extension_add(NULL, your_edc_path); //NULL 表示默认主题。 查看更多详细信息 https://docs.tizen.org/application/native/guides/ui/efl/component-custom/

    我想知道...您真的想更改 genlist 而不是 genlist_item。 如果您想更改很少更改的 genlist 小部件主题, 您需要复制滚动主题或默认 genlist 主题, 因为 genlist 是特殊类型的滚动条。 genlist 样式位于 https://review.tizen.org/gerrit/#/admin/projects/profile/wearable/platform/core/uifw/efl-theme-tizen-wearable 中的 widgets/scroller.edc 中

    为了确保, 我测试了 scroller.edc(genlist/default) 中的简单信号变化

      part { name: "myrect"; type: RECT;
         description { state: "default" 0.0;
            visible: 0;
         }
         description { state: "show" 0.0;
            inherit: "default" 0.0;
            visible: 1;
            color: 255 0 0 255;
         }
      }
      program { name: "myprogram";
         signal: "mysignal";
         source: "app";
         action: STATE_SET "show" 0.0;
         target: "myrect";
      }
    

    并发送一个信号, elm_object_signal_emit(myList, "mysignal", "app");

    正确地将背景颜色更改为红色。

    【讨论】:

      猜你喜欢
      • 2016-01-09
      • 2015-06-01
      • 2023-03-28
      • 1970-01-01
      • 2018-03-20
      • 2018-01-06
      • 1970-01-01
      • 2020-04-08
      • 2021-03-18
      相关资源
      最近更新 更多