硬汉嵌入式论坛

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

[ThreadX全家桶] GUIX 模态窗口的 BUG

[复制链接]

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2021-2-3 12:08:23 | 显示全部楼层 |阅读模式
本帖最后由 ihavedone 于 2021-2-3 12:10 编辑

6.1.3版本在使用模态窗口时,会出现点击模态窗的任意位置(不是能关闭模态窗的控件),会将其后面的窗口内容显示出来的问题。
之前的版本也有出现弹出模态窗时,模态窗不处于最顶层,后面通过函数强制置顶之后就没问题了。

但是6.1.3版本强制置顶后,点击任意位置都会把其后面的窗口给提到上层来,遮挡住模态窗口。

1、操作界面。逻辑为:不输入密码,点登录会弹出提示框。
QQ图片20210203115544.png
2、在提示框的任意位置(不能是确定按钮)单击一下。
QQ图片20210203115533.png
3、模态窗后面的窗体内容被提到上层了。
QQ图片20210203115521.png

附件为截屏录像
1612324441188.mp4 (284.98 KB, 下载次数: 20)

是我哪里设置不正确吗?各位大佬有没有碰到过这个问题?


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-2-3 12:14:24 | 显示全部楼层
可以设置窗口的前后顺序。是否可以避免
回复

使用道具 举报

3

主题

66

回帖

75

积分

初级会员

积分
75
发表于 2021-2-3 12:56:43 | 显示全部楼层
你这是问问题还是给GUIX下诊断?
出现这种BUG,你让MS情何以堪,你让IEC61508情何以堪
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2021-2-3 13:41:43 | 显示全部楼层
78028048 发表于 2021-2-3 12:56
你这是问问题还是给GUIX下诊断?
出现这种BUG,你让MS情何以堪,你让IEC61508情何以堪

你试一下就知道了,我最后也写了不清楚是不是哪里没设置对。
如果有知道原因的大佬能指出问题出在哪里,感激不尽。
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2021-2-3 13:46:08 | 显示全部楼层
eric2013 发表于 2021-2-3 12:14
可以设置窗口的前后顺序。是否可以避免

窗口是先创建的,模态窗是弹出的时候 attach 到窗口的。
窗口里的白色中框和里面的内容是大窗口的子控件,模态窗attach 以后也是大窗口的子控件。

如果最新 attach 的控件不是自动处于最顶层,我也通过函数 gx_widget_front_move 给置顶了。
但还是只有刚显示的时候处于置顶状态,一旦点击了其他地方,原有的子控件就到上层来了。

你说的设置窗口前后顺序是在哪里设置?我试一下。。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-2-3 14:11:18 | 显示全部楼层
QQ截图20210203140555.png
回复

使用道具 举报

6

主题

14

回帖

32

积分

新手上路

积分
32
发表于 2021-2-3 14:17:56 | 显示全部楼层

你这个操作只限于同一个窗口的控件的设置。如果几个子窗口叠加的话,就是会出现楼主说的问题。
另外,如果详细使用了guix studio就会发现,bug多的让你怀疑人生。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-2-3 15:04:12 | 显示全部楼层
guochenwei 发表于 2021-2-3 14:17
你这个操作只限于同一个窗口的控件的设置。如果几个子窗口叠加的话,就是会出现楼主说的问题。
另外,如 ...

楼主就是attach作为子窗口用的。


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-2-3 15:31:51 | 显示全部楼层
测试了不行,我在板子上面设置模态试试
QQ截图20210203152721.png
回复

使用道具 举报

0

主题

48

回帖

48

积分

新手上路

积分
48
发表于 2021-2-3 15:48:10 | 显示全部楼层
ihavedone 发表于 2021-2-3 13:46
窗口是先创建的,模态窗是弹出的时候 attach 到窗口的。
窗口里的白色中框和里面的内容是大窗口的子控件 ...

能贴下弹出模态窗口的相关代码以及模态窗口的属性(控件类型等)吗?
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2021-2-3 16:20:50 | 显示全部楼层
Ting 发表于 2021-2-3 15:48
能贴下弹出模态窗口的相关代码以及模态窗口的属性(控件类型等)吗?

我把弹出框封装成了一个函数,下面是代码。
QQ图片20210203160602.png

帖子提到的问题,我找到原因了。
1、工作窗口是个 window 有个背景图。
2、中间的白色部分是个 window(里面包含其他子控件),作为子窗口。 创建 1 时就会自动创建 2。
3、弹出框是个 window,创建时没有指定 父窗口,使用时 attach 到 window 1。

当 window 1 和 window 2 都设置了可获取焦点,window 3 不论设置能不能获取焦点,此时弹出 window 3 就不会在最顶层,window 2 会覆盖 window 3。
如果 window 3 弹出后通过函数置顶,可以显示在最顶层,但是一旦有操作,window 2 就会上升到顶层。

当 window 1 或者 window 2 任意一个设置为不可获取焦点,此时弹出 window 3 就在最顶层,不需要函数置顶,且操作也不会使 window 2 置顶。 就是我要的逻辑。


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-2-3 16:24:14 | 显示全部楼层
ihavedone 发表于 2021-2-3 16:20
我把弹出框封装成了一个函数,下面是代码。

你这描述听着我好累。。。
关键词补充:
1、工作窗口是个 window 有个背景图。
2、中间的白色部分是个 window(里面包含其他子控件),作为子窗口。 创建 window 1 时就会自动创建 window 2
3、弹出框是个 window 3,创建时没有指定 父窗口,使用时 attach 到 window 1。


不禁止聚焦 window 1和 window 2,直接设置聚焦到Window3,是否也不行。

模态应该设置后直接聚焦到模态窗口上比较符合认知。
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2021-2-3 16:34:47 | 显示全部楼层
eric2013 发表于 2021-2-3 16:24
你这描述听着我好累。。。
关键词补充:
1、工作窗口是个 window 有个背景图。

试过了,不禁止 window 1 、 window 2 和 window 3 的聚焦,弹出就是 window 2 在顶层。

window 3 里面的控件有 icon,prompt,multi_view 和 pixelmap_button。
其中 pixelmap_button 是可以聚焦的。

但是任何在 window 3 上面的操作,都会聚焦到 window 2 上面去,所以就显示 window 2 了。

这里感觉比较奇怪,确实是应当直接聚焦到 window 3 才是正确的操作。
回复

使用道具 举报

3

主题

66

回帖

75

积分

初级会员

积分
75
发表于 2021-2-3 17:05:17 | 显示全部楼层
我知道在比如windows里 有modal dialog的概念,guix是不是也有类似的概念
回复

使用道具 举报

0

主题

48

回帖

48

积分

新手上路

积分
48
发表于 2021-2-5 10:40:41 | 显示全部楼层
ihavedone 发表于 2021-2-3 16:20
我把弹出框封装成了一个函数,下面是代码。

工作窗口是有背景的,模态窗口attach到工作窗口后怎么没有背景了?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 02:24 , Processed in 0.342647 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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