在待筛选邮件 API 中使用儿童参与者
Working with Children Actors in the Clutter API
我一直在玩弄杂乱,对如何与演员和儿童演员合作有点困惑。让我们从一个简单的例子开始,它引起了我的一些困惑。 我创建了两个 Clutter::Rectangles(我使用 Cluttermm 绑定),并使第二个成为第一个的子项:
Glib::RefPtr<Clutter::Rectangle> rect = Clutter::Rectangle::create();
rect->set_color(Clutter::Color(255, 0, 0, 255));
rect->set_size(100, 100);
rect->set_position(500,500);
rect->show();
stage->add_actor(rect);
Glib::RefPtr<Clutter::Rectangle> rect2 = Clutter::Rectangle::create();
rect2->set_color(Clutter::Color(0, 255, 0, 255));
rect2->set_size(100, 100);
rect2->set_position(0,0);
rect2->set_parent(rect);
rect2->show();
据我了解,这应该使两个矩形可见,但 rectangle2 不是。 尽管它成为第一个矩形的父级,但它无处可寻。 这是为什么呢? set_parent()的真正含义是什么?
这种困惑更深一些。 今天早些时候,我尝试编写一个更复杂的复合Actor,它由许多Actor(例如矩形等)组成。 虽然从视觉上看,这个任务是成功的,但我在尝试为这些子演员附加事件回调时遇到了严重的困难——事实上,据我所知,这些事件永远不会到达父演员的孩子。
这让我非常困惑。 例如,如何使用杂乱创建按钮框? 是否必须创建自己的参与者检测/事件管理系统,或者通过将子角色而不是实际父角色添加到舞台来将事件回调连接到子参与者的唯一方法?
这让我非常困惑,考虑到目前缺乏文献,任何帮助将不胜感激!
矩形
不是一个容器:你不能将子项添加到一个容器中;或者,至少,你可以将一个演员的父级设置为一个非容器演员,但该演员不会被绘制——这很可能不是你想要的。
应使用容器 actor 并向该容器添加矩形。
不过,这对于 Clutter ≤ 1.8 有效;在当前稳定版的 Clutter (1.10) 中,有各种更改:
- ClutterActor 替换了大部分已弃用的 API - 即您应该创建 Actor 实例并向其中添加子实例。
- 杂物演员可以抱孩子,默认情况下会画 ;
- ClutterRectangle 在 Clutter 1.10 中已被弃用,尽管它的行为尚未更改(向其添加子项不会导致这些子项被绘制)。
- clutter_actor_set_parent() 在 1.10 中也被弃用,取而代之的是更类似于 DOM 的 add_child()。
ClutterActor 的 API 参考应该会阐明这个问题:
http://developer.gnome.org/clutter/stable/ClutterActor.html
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 在gtest.中使用fff.h模拟系统API
- 有没有任务栏API可以立即应用注册表更改
- C++win32 API创建多个类似视口的窗口
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 如何将真正的字符串从python c-api转换为python脚本
- 使用Qt框架在c ++类中创建API调用
- Libreoffice API (UNO):需要更改用户的 xTextField 文本
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- 使用 Python Extension API 包装复杂C++类
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 第三方 API 中的编译错误 - Visual Studio
- Tensorflow c++ api undefined reference to 'tflite::D efaultErrorReporter()'
- clang 的 libFuzzer 可以在同一二进制文件中测试超过 1 个 API 吗?
- 在待筛选邮件 API 中使用儿童参与者