硬汉嵌入式论坛

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

[ThreadX全家桶] 请教下,guix 里面的 vertical_list 这个控件,横向增加 2个 prompt 控件失败 ?

[复制链接]

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
发表于 2024-4-26 15:41:05 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2024-4-26 16:42 编辑

请教下,guix 里面的 vertical_list 这个控件,横向增加 2个 prompt  控件失败 ?

demo_guix_vertical_list.7z (4.09 KB, 下载次数: 0)

参考例程: ..\guix-6.4.0_rel\tutorials\demo_guix_vertical_list

#define LIST_ROW_HEIGHT           36

void vertical_list_row_create(GX_VERTICAL_LIST *list, GX_WIDGET *widget, INT index)
{
    GX_BOOL is_created;
    GX_BOOL is_created_2;
    GX_RECTANGLE size;
    LIST_ROW *row = (LIST_ROW *)widget;
    GX_RESOURCE_ID bkgnd_color;
    GX_STRING string;

    if (index & 1)
    {
        bkgnd_color = GX_COLOR_ID_WINDOW_FILL;
    }
    else
    {
        bkgnd_color = GX_COLOR_ID_ODD_ROW;
    }

    /* Test if the widget have already been created. */
    gx_widget_created_test(&row->prompt, &is_created);


    if (!is_created)
    {
    //    size.gx_rectangle_top = size.gx_rectangle_left = size.gx_rectangle_right = 0;
    //    size.gx_rectangle_bottom = size.gx_rectangle_top + LIST_ROW_HEIGHT - 1;

        size.gx_rectangle_top = 0;
        size.gx_rectangle_bottom = size.gx_rectangle_top + LIST_ROW_HEIGHT - 1;

        size.gx_rectangle_left = 0;
        size.gx_rectangle_right = 180 - 1;

        gx_prompt_create(&row->prompt, GX_NULL, list, 0, GX_STYLE_ENABLED, 0, &size);

        // ---------------------------------------------------------------------------------------------------------------------------------------------------------
        // ---------------------------------------------------------------------------------------------------------------------------------------------------------
        size.gx_rectangle_top = 0;
        size.gx_rectangle_bottom = size.gx_rectangle_top + LIST_ROW_HEIGHT - 1;

        size.gx_rectangle_left = 182;
        size.gx_rectangle_right = 260-20-180 - 1-2;
        
        gx_prompt_create(&row->name, GX_NULL, list, 1, GX_STYLE_ENABLED, 1, &size);
    }

    /* Initiate row text. */
    gx_utility_ltoa(index, row->text, LIST_ROW_TEXT_BUFFER_SIZE);

    /* Set row text to prompt. */
    string.gx_string_ptr = row->text;
    string.gx_string_length = string_length_get(row->text, LIST_ROW_TEXT_BUFFER_SIZE - 1);
    gx_prompt_text_set_ext(&row->prompt, &string);
    gx_prompt_text_set_ext(&row->name, &string);

    /* Set text color. */
    gx_prompt_text_color_set(&row->prompt, GX_COLOR_ID_OFF_WHITE, GX_COLOR_ID_BLACK, GX_COLOR_ID_OFF_WHITE);
    gx_prompt_text_color_set(&row->name, GX_COLOR_ID_OFF_WHITE, GX_COLOR_ID_BLACK, GX_COLOR_ID_OFF_WHITE);

    /* Set fill color. */
    gx_widget_fill_color_set(&row->prompt, bkgnd_color, GX_COLOR_ID_GREEN, bkgnd_color);
    gx_widget_fill_color_set(&row->name, bkgnd_color, GX_COLOR_ID_GREEN, bkgnd_color);
}

上面的驱动仿真效果图(这个不是我需要的):
008.png


------------------------------------
我需要的效果图:
004.png

大神们有什么好的方法没 ???????????







回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
发表于 2024-4-26 17:07:36 | 显示全部楼层
guix studio 的例程我发现有些工程里面添加的button风格和其他工程不一样,这是在哪儿设置,比如说demo_guix_vertical_list 里面的button风格和其他不同
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106872
QQ
发表于 2024-4-27 08:41:29 | 显示全部楼层
那就创建1个,中间加空格,满足需求吗
回复

使用道具 举报

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
 楼主| 发表于 2024-4-27 12:21:48 | 显示全部楼层
eric2013 发表于 2024-4-27 08:41
那就创建1个,中间加空格,满足需求吗

貌似不能够满足啊,

如果分开创建两个 vertical list  prompt 控件是可以, 但是在选择上就又会出现麻烦, 特别是右侧的滚动条不好整啊, 还有就是获取到的条目数量超过一屏显示的数目时需要上下滑动显示时就会出现脱节的情况
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-4-28 09:22:37 | 显示全部楼层
可以使用GUIX studio制作一个window作为Template,里面添加两个prompt水平且等高布局,然后添加到list中应该就可以满足你的要求了。
回复

使用道具 举报

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
 楼主| 发表于 2024-4-28 17:11:52 | 显示全部楼层
本帖最后由 hpdell 于 2024-4-28 17:16 编辑
awu 发表于 2024-4-28 09:22
可以使用GUIX studio制作一个window作为Template,里面添加两个prompt水平且等高布局,然后添加到list中应该 ...


刚刚试了一下,貌似不行啊, 建立顺序如下:
44.png

如上顺序建立的控件, 在 window_vertical_list-> vertical list -> prompt 建立控件时,宽度不能够设置,如果强行修改 prompt 控件的宽度会提示警告如下:
45.png


回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-4-28 17:46:15 | 显示全部楼层
本帖最后由 awu 于 2024-4-28 22:30 编辑
hpdell 发表于 2024-4-28 17:11
刚刚试了一下,貌似不行啊, 建立顺序如下:

我刚刚简单测试了一下,GUIX studio是可以实现的。等晚上回家了我用Visual studio测试一下。


使用GUIX studio 可以做出如图GUIX_效果图.png所示,其使用的template配置如图GUIX_template.png。
如果使用历程demo_guix_vertical_list中的方式创建还是有问题只能等后面再看了,通过插入的方式显示不知能否满足你的需求?


GUIX_效果图.png
GUIX_template.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106872
QQ
发表于 2024-4-29 08:21:30 | 显示全部楼层
awu 发表于 2024-4-28 17:46
我刚刚简单测试了一下,GUIX studio是可以实现的。等晚上回家了我用Visual studio测试一下。

这个效果应该就可以的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106872
QQ
发表于 2024-4-29 08:21:42 | 显示全部楼层
hpdell 发表于 2024-4-28 17:11
刚刚试了一下,貌似不行啊, 建立顺序如下:

看看楼下群友这个可行不
回复

使用道具 举报

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
 楼主| 发表于 2024-4-29 15:30:20 | 显示全部楼层
awu 发表于 2024-4-28 17:46
我刚刚简单测试了一下,GUIX studio是可以实现的。等晚上回家了我用Visual studio测试一下。

在 window 里面建立 prompt 控件是可以, 但是不能够增加到 vertical list 里面使用啊

如果按照你所说的使用模版的形式,目前也不会使用啊 ?!
回复

使用道具 举报

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
 楼主| 发表于 2024-4-29 15:33:52 | 显示全部楼层
eric2013 发表于 2024-4-29 08:21
看看楼下群友这个可行不

群友说的意思是我需要的,但是具体实现我目前还是不会使用啊 , 有没有这方面的 例程提供啊 ?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 10:38 , Processed in 0.188323 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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