开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 441|回复: 17
收起左侧

[技术专题] Exui 深度使用报告

[复制链接]

结帖率:100% (11/11)
发表于 前天 14:21 | 显示全部楼层 |阅读模式   山东省烟台市
本帖最后由 观音 于 2025-6-5 19:02 编辑

从18年开始,我这边接单、工作制作的软件基本都是使用的exdui,从去年开始正式使用exui进行开发,深度体验了一年,其中开发过单软件数万行代码的程序,基本上所有软件都是多线程操作窗口组件

一、界面功能性

  • 经历这么多年的版本更新,功能性确实已经非常不错了,基本上我需要所有功能都可以实现,但是要对很多组件进行一些调整,组件插入元素真的很方便,最完美的功能
  • 展示效果基本上都可以通过修改属性来进行调整展示效果
  • 部分组件尽量不要用默认的,最好是自己制作 如:信息框_Ex 输入框_Ex 弹出时间选择器_Ex  通过自己绘制窗口来达到自己想要的效果和皮肤
  • 可以配合浏览器_Ex,掺杂html代码进行开发

自制 信息框_Ex 输入框_Ex 弹出时间选择器_Ex 效果展示

Snipaste_2025-06-05_13-37-33.png


二、动效支持

  • 仅支持一些简单的特效:组件尺寸变化、透明度变化、 位置变化 、高斯模糊 清晰度变化(滤镜Ex组件)
  • 当然永远比不过Ex_Dui,对方可以通过gdi随便画出你想要的特效,但是基本上易语言开发的程序也不需要那么花里胡哨的动效
  • 对上一条的解释,最近我很少用到一些复杂特效,不知道Exui的画板组件怎么样,以及从来没用过的 动画按钮,当然不能接管组件的绘制事件,那么动效肯定是比不过 Ex_Dui 的
  • Exui本身就是以简单、傻瓜式调用、快速开发著称的,如果跟Ex_Dui比较注定是不公平的,我并不觉得现在的动效支持有什么太大的问题,普通开发绝对够用


三、稳定性 这里是你最该关注的问题,也是困扰了我最久的问题,乃至现在我都比较害怕这个话题

这是我对Exui又爱又恨的一个点了,当时按照正常流程开发的程序,因为软件一直需要频繁操作,多线程执行任务修改列表状态,一直在点击各种按钮,差不过平均一台电脑一天闪退 5-10次

单是对Exui代码的优化,前前后后各种修改测试,花了近两个月

所有源码使用系统自带的组件是可以做到完美不闪退的,但是习惯了使用ui来制作,我还是把重心放到了优化闪退问题上

阶段一:闪退频率每天:5-10次

所有闪退都不是固定操作闪退,有的时候操作A功能 有的时候点击了B按钮,但是轻度使用可以做到一周稳定不闪退

在开发时所有线程内修改组件本身都是加入了临界许可的,可以100%保证线程安全,但是非线程内修改组件是没有加临界许可的

下面来说一下我的所有尝试:

尝试给所有线程内读取组件增加读写锁,所有临界许可替换为读写锁,保证线程安全(其实自己也知道 一般读是不需要加锁的,但是以防万一),还是偶尔闪退

把所有读写锁替换为临界许可 ,还是偶尔闪退

所有线程内修改组件前 增加 处理事件()还是偶尔闪退,依次替换为 系统_处理事件()、系统_处理事件1()还是偶尔闪退

在部分修改大量组件,非线程调用代码前后 增减 组件更新缓存() 命令 还是偶尔闪退

这里一旦发现还是闪退,我会把大量优化过的代码还原,只保留最稳定的代码 比如:最后还是替换回了读写锁

最后,通过 构建结构体,窗口EX1.调用反馈事件 传入结构体, 销毁结构体 来进行调用所有线程内修改窗口组件的操作,从这次更新开始,开始稳定,一天闪退缩小到每台电脑3次以内

阶段二:闪退频率每天:3次以内

但是出现了一个新的问题,有时候置超级列表框的数据他会乱码  ,概率比较小,但是一般出现这个问题后,那么软件在10分钟内 基本上必定闪退,之前也有,但是我没有考虑到这块

将 构建结构体,窗口EX1.调用反馈事件 传入结构体, 销毁结构体 操作,替换为 组件提交任务 这样不需要我加临界许可,也不需要我判断销毁结构体了,调用确实会更方便一些

ok,每天闪退现在基本上听不到反馈了,基本上偶尔几天闪退一次,甚至部分人可以做到十几天稳定运行

将一个后台多线程扫描程序 打印窗口日志的命令 也替换为 组件提交任务 ,挂机两三个月了仍然稳定未闪退,下面是我线程调用组件时的简单调用代码

  
子程序名返回值类型公开备 注
showTips  
参数名类 型参考可空数组备 注
icon字节集
title文本型
如果真 (Select_Setting_NoTips.选中)
返回 ()
如果真 (位置 ≠ 2)
' G_StructurePermit.进入 ()
' structure = 结构体创建自参数 (真, icon, title)
' G_StructurePermit.退出 ()
' 弹出通知框Ex (, , icon, title, , 1, 1, L_TipsLayoutParent, 3000, , #UI_TipsBox, , )
组件提交任务 (L_TaskHandle, 2, 到整数 (&componentTask), 101, icon, title)  ' 窗口EX1.调用反馈事件 (101, structure, 1)



i支持库列表   支持库注释   
ExuiKrnln(未知支持库)

  
子程序名返回值类型公开备 注
componentTask  
参数名类 型参考可空数组备 注
组件句柄整数型
调用方式整数型
任务函数整数型
透传参数1整数型
透传参数2整数型
变量名类 型静态数组备 注
byte1字节集 
bool1逻辑型 
int1整数型 
int2整数型 
int3整数型 
int4整数型 
int5整数型 
long1长整数型 
text1文本型 
text2文本型 
text3文本型 
text4文本型 
text5文本型 
text6文本型 
text7文本型 
text8文本型 
判断 (透传参数1 = 101)  ' 弹出通知框
如果真 (位置 ≠ 2)
结构体解析到参数 (透传参数2, byte1, text1)
弹出通知框Ex (, , byte1, text1, , 1, 1, L_TipsLayoutParent, 3000, , #UI_TipsBox, , )


i支持库列表   支持库注释   
ExuiKrnln(未知支持库)


刚好这里说一下,之前的版本如果窗口最小化了,调用通知框,他会100%闪退,所以进行了判断优化

这个通知框肯定是有点不稳定,我特地加了个设置让他们关掉这个通知,使用通知框偶尔有概率会闪退,不调用就几乎不闪退,我之前使用的版本是 20241201 版本,现在使用的是 20250220 版本,不知道现在是不是修复了这个bug

没有用后面的版本是因为他后面的版本 编辑框 输入模式为密码输入时,修改字体不能修改密码替换符的字体,我反馈了也没修复,就没用后面的版本了,而且最新版树型框的多选也有问题,我也懒得反馈了

这个闪退问题真的是心有余辜,只希望能彻底优化好这个闪退问题

综合来说:暂时不建议小白使用Exui来开发程序,如果只是简单的功能,那么可以,别像我这么大的程序用Exui开发完后,哭都不知道怎么哭,等待后续版本优化后我会持续关注,如果哪天比较稳定了,再开贴跟大家分享

点评

新版问题巨多,我一直用2017老版本,七年了   河北省邯郸市  发表于 前天 17:38

评分

参与人数 2好评 +2 精币 +2 收起 理由
丿Mrs°戮默 + 1 + 1 学到东西了。
金哥专用 + 1 + 1 感谢分享,很给力!~

查看全部评分


结帖率:0% (0/2)

签到天数: 4 天

发表于 昨天 16:23 | 显示全部楼层   浙江省温州市
观音 发表于 2025-6-5 20:01
习惯之后好用是真好用,闪退也是真闪退

诶,有些函数命令什么的封装起来用的很奇怪
回复 支持 反对

使用道具 举报

结帖率:63% (22/35)

签到天数: 5 天

发表于 前天 22:25 | 显示全部楼层   广东省汕尾市
原生路过
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 6 天

 楼主| 发表于 前天 20:01 | 显示全部楼层   山东省烟台市
lianzuo123 发表于 2025-6-5 19:44
EXUI用起来别扭的要死

习惯之后好用是真好用,闪退也是真闪退
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 4 天

发表于 前天 19:44 | 显示全部楼层   浙江省温州市
EXUI用起来别扭的要死
回复 支持 反对

使用道具 举报

结帖率:93% (93/100)

签到天数: 6 天

发表于 前天 19:38 | 显示全部楼层   广西壮族自治区南宁市
易语言和EXUI很搭配,都是开发中小软件的。 我白嫖它3年了,去年刚狠心买永久会员。
回复 支持 反对

使用道具 举报

结帖率:94% (158/168)

签到天数: 6 天

发表于 前天 18:55 | 显示全部楼层   湖南省永州市
兄弟不妨考虑Vue3来开发界面,易语言做底层支持
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 2 天

发表于 前天 18:10 | 显示全部楼层   湖南省常德市
感谢分享,都是干货。
回复 支持 反对

使用道具 举报

结帖率:98% (93/95)

签到天数: 6 天

发表于 前天 16:59 | 显示全部楼层   河北省沧州市
崩溃有的时候真不是代码问题 有的时候是支持库问题
用代码创建分组框组件也会崩溃 反馈问题好嘛下个版本更新了 最新版本又开始崩溃了
用自带的缓动做效果 也是问题很多
连续点快了 也会闪退(真不要抬 我用缓动特效_1.5这个模块 同样的代码逻辑下 真比exui自带的缓动命令好太多了)
回复 支持 反对

使用道具 举报

结帖率:89% (24/27)

签到天数: 2 天

发表于 前天 16:46 | 显示全部楼层   广东省深圳市
入门到深处 就是放弃的时候!
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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