硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7296|回复: 23
收起左侧

[ThreadX全家桶] 请教下,如何能够在表盘增加多个指针 ?demo_guix_widget_types 这个历程里面只有一个指针

  [复制链接]

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
发表于 2021-4-20 15:09:53 | 显示全部楼层 |阅读模式


请教下,如何能够在表盘增加多个指针 ?demo_guix_widget_types 这个历程里面只有一个指针

C:\Users\hphp\Desktop\guix studio(demo sample) v6.1.6\guix\samples\demo_guix_widget_types

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-4-21 08:43:30 | 显示全部楼层
确实没有多指针的例子,需要官方做个。
回复

使用道具 举报

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
 楼主| 发表于 2021-4-21 09:09:43 | 显示全部楼层
eric2013 发表于 2021-4-21 08:43
确实没有多指针的例子,需要官方做个。

这个玩意 貌似没有 emwin 使用方面啊

emwin 增减可以随时修改,貌似 这个 guix 相要随时修改会比较麻烦
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-4-22 08:47:08 | 显示全部楼层
hpdell 发表于 2021-4-21 09:09
这个玩意 貌似没有 emwin 使用方面啊

emwin 增减可以随时修改,貌似 这个 guix 相要随时修改会比较麻 ...

得花点时间熟悉GUIX套路后才好修改。
回复

使用道具 举报

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
 楼主| 发表于 2021-4-22 10:22:56 | 显示全部楼层
eric2013 发表于 2021-4-22 08:47
得花点时间熟悉GUIX套路后才好修改。

大概初步的看了一下,貌似都是换换相扣的,修改起来貌似比较麻烦,哎,还是继续装死等待 哟 ..
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2021-8-3 09:23:23 | 显示全部楼层
eric2013 发表于 2021-4-21 08:43
确实没有多指针的例子,需要官方做个。

请教一下,如何实现时间表盘?时针、分针、秒针……
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-8-3 09:29:49 | 显示全部楼层
gck 发表于 2021-8-3 09:23
请教一下,如何实现时间表盘?时针、分针、秒针……

使用2D绘制比较简单。

使用他们原装控件,我还没有去摸索,待我腾出精力了摸索下。
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2021-8-3 10:04:22 | 显示全部楼层
eric2013 发表于 2021-4-21 08:43
确实没有多指针的例子,需要官方做个。

[img]  https://i.loli.net/2021/08/03/aJZQiAC4xjeHpBh.jpg[/img]
可以写个如上图界面效果的guix例程吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-8-3 10:29:10 | 显示全部楼层
gck 发表于 2021-8-3 10:04
可以写个如上图界面效果的guix例程吗?

没问题,留待GUIX提高篇案例制作。
回复

使用道具 举报

0

主题

48

回帖

48

积分

新手上路

积分
48
发表于 2021-8-4 11:12:15 | 显示全部楼层
circular gauge 目前只支持一个指针,可以通过重写circular gauge draw实现多指针。
示例:
INT second_needle_angle = 60;

VOID custom_circular_gauge_draw(GX_CIRCULAR_GAUGE *gauge)
{
    GX_CIRCULAR_GAUGE_INFO *info;
    INT xcor;
    INT ycor;
    INT needle_xpos;
    INT needle_ypos;
    GX_PIXELMAP *needle;
    GX_PIXELMAP needle_rotated;

    /* Call default circular draw. */
    gx_circular_gauge_draw(gauge);

    /* Pick up pointer to the gauge information structure.  */
    info = &gauge->gx_circular_gauge_info;

    /* Retrieve the map for the second needle. */
    gx_context_pixelmap_get(GX_PIXELMAP_ID_NEEDLE, &needle);

    if (needle)
    {
        xcor = (INT)(info->gx_circular_gauge_info_needle_xcor);
        ycor = (INT)(info->gx_circular_gauge_info_needle_ycor);

        needle_xpos = info->gx_circular_gauge_info_needle_xpos;
        needle_ypos = info->gx_circular_gauge_info_needle_ypos;

        /* Rotate the second needle pixelmap. */
        if (gx_utility_pixelmap_rotate(needle, second_needle_angle, &needle_rotated, &xcor, &ycor) == GX_SUCCESS)
        {
            /* Calculate start position of needle pixelmap.  */
            needle_xpos = gauge->gx_widget_size.gx_rectangle_left + info->gx_circular_gauge_info_needle_xpos;
            needle_xpos -= xcor;

            needle_ypos = gauge->gx_widget_size.gx_rectangle_top + info->gx_circular_gauge_info_needle_ypos;
            needle_ypos -= ycor;

            /* Draw needle .  */
            _gx_canvas_pixelmap_draw((GX_VALUE)needle_xpos, (GX_VALUE)needle_ypos, &needle_rotated);

            /* Free rotate needle pixelmap memory.  */
            if (memory_free)
            {
                if (needle_rotated.gx_pixelmap_aux_data)
                {
                    memory_free((VOID*)needle_rotated.gx_pixelmap_aux_data);
                }
                memory_free((VOID*)needle_rotated.gx_pixelmap_data);
            }
        }
    }
}

这段代码可以放在tutorials/demo_guix_circular_gauge里使用,需要把表盘的draw函数设为custom_circular_gauge_draw。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-8-5 08:41:25 | 显示全部楼层
Ting 发表于 2021-8-4 11:12
circular gauge 目前只支持一个指针,可以通过重写circular gauge draw实现多指针。
示例:
INT second_n ...

非常感谢,我新开个帖子,备份下这个问题。
回复

使用道具 举报

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
 楼主| 发表于 2021-8-5 08:53:20 | 显示全部楼层
eric2013 发表于 2021-8-5 08:41
非常感谢,我新开个帖子,备份下这个问题。

好哇,不过我貌似还是没有看明白呀,惭愧惭愧
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2021-12-9 11:49:32 | 显示全部楼层
Ting 发表于 2021-8-4 11:12
circular gauge 目前只支持一个指针,可以通过重写circular gauge draw实现多指针。
示例:
INT second_n ...

请问,这个例程有没有完整的,最终效果如何?
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2021-12-9 17:10:05 | 显示全部楼层
eric2013 发表于 2021-8-3 10:29
没问题,留待GUIX提高篇案例制作。

楼主,guix什么时候更新?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-12-9 17:49:30 | 显示全部楼层
gck 发表于 2021-12-9 17:10
楼主,guix什么时候更新?

近期会更新。
回复

使用道具 举报

3

主题

1228

回帖

1237

积分

至尊会员

积分
1237
发表于 2021-12-9 18:02:42 | 显示全部楼层
期待更新
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2021-12-10 14:23:38 | 显示全部楼层
eric2013 发表于 2021-4-21 08:43
确实没有多指针的例子,需要官方做个。

guix中screen flow中是否可以实现以下效果
假设当前界面是表盘界面;
1、竖直方向实现:
上划显示信息界面,下滑显示到表盘界面
下滑显示设置界面,下滑显示到表盘界面
2、水平方向实现包含表盘界面的多界面滑动;
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2021-12-10 15:31:05 | 显示全部楼层
eric2013 发表于 2021-8-3 10:29
没问题,留待GUIX提高篇案例制作。

请教一下,gauge设置的指针怎么一设置角度,页面显示的指针图标就不见了,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-12-11 08:58:10 | 显示全部楼层
gck 发表于 2021-12-10 14:23
guix中screen flow中是否可以实现以下效果
假设当前界面是表盘界面;
1、竖直方向实现:

这个可以。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-12-11 08:58:29 | 显示全部楼层
gck 发表于 2021-12-10 15:31
请教一下,gauge设置的指针怎么一设置角度,页面显示的指针图标就不见了,

这个控件的玩法我还没有研究。
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2021-12-11 09:25:35 | 显示全部楼层

楼主,能不能补充一下guix相关例程;screen flow,按键倒是可以实现任意界面的切换;
可是滑动实现切换到两个界面,模拟器实现没发现怎样操作实现上下方向的滑动操作,
两个界面来回切换可以,但是当三个界面之间,其中一个是公共界面,来回切换好像不行;楼主可以出一个相关的例程吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-12-11 09:38:46 | 显示全部楼层
gck 发表于 2021-12-11 09:25
楼主,能不能补充一下guix相关例程;screen flow,按键倒是可以实现任意界面的切换;
可是滑动实现切换 ...


这个有例子啊,此贴就是

https://www.armbbs.cn/forum.php? ... &extra=page%3D1

QQ截图20211211093916.png
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2021-12-11 10:16:32 | 显示全部楼层
eric2013 发表于 2021-12-11 09:38
这个有例子啊,此贴就是

https://www.armbbs.cn/forum.php?mod=viewthread&tid=98429&extra=page%3D ...

需要其中一个界面可以四个方向滑动
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-12-11 10:27:49 | 显示全部楼层
gck 发表于 2021-12-11 10:16
需要其中一个界面可以四个方向滑动

这个自己修改下吧。上下滑动和左右滑动都添加触发模式就行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 18:16 , Processed in 0.395666 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表