仿酷狗音乐播放器开发日志二——搜索栏的编写

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 转载请说明出处   今天早上把整个软件的标题栏部分做得差不多了。     软件上各个按钮和控件的位置和大小都是按照原软件的大小和比例制作的,所有控件都可以动态响应。

转载请说明出处

 

今天早上把整个软件的标题栏部分做得差不多了。



    软件上各个按钮和控件的位置和大小都是按照原软件的大小和比例制作的,所有控件都可以动态响应。首先的任务把软件的整体界面效果制作出来,然后把剩下的小细节的动作一一实现,再者是把软件里面的各种动态效果渲染上去,‘最后便是把软件的实际功能编写完成。
    目前遇到的最麻烦的问题就在于软件素材的获取,用工具提取出来的素材有1500多个,所有素材都在同一个文件夹里,没有规范的命名,所以为了找到对应的素材需要大费周折,实在不得已的情况还需要自己用PS把素材做出来,这着实浪费了许多时间。今天的任务就是把1500个素材整理分类,方便后面的界面开发的进行。

    在制作标题栏的搜索功能时遇到问题,原来的软件背景如下



    当单击编辑框时编辑框变为白色



    并且,编辑框内嵌入了一个搜索按钮,整个编辑框的长度会随着软件的宽度的改变而自动改变。目前的问题是使用duilib做出来的编辑框在单击后可编辑区的白色和非编辑区的白色不一致,非编辑区的白色偏暗。并且如果使用绝对定位加入搜索按钮后,按钮无法跟随编辑框的长度的改变而自动改变位置,目前的想法是重载编辑框控件,重写DoPaint函数的代码,并且组合一个搜索按钮进去,动态修改按钮的位置。
      
    刚才发现可编辑区的白色和非编辑区的白色不一致是由于背景图片的透明度与背景颜色参杂运算后造成的,在代码里当编辑框控件获取焦点时设置他的背景色为白色并且去掉背景图片,在失去焦点时设置背景色的透明度为0并且把背景图片再设置回去便解决了颜色不一致的问题。效果如下
    
    搜索按钮自动定位的问题通过relativepos属性解决了,这是的搜索框已经和原版的完全一样了。但是此属性有个bug,就是窗体最小化并且恢复后会让有relativepos属性的控件发生错误的定位,于是问题转为了修复duilib的bug上,开工···
     
    从上午9点到现在下午3点,调试了6个小时,终于发现并修复了duilib导致relativepos位置错乱的bug,问题出在UIManager.cpp的MessageHandler函数WM_PAINT消息处理上,窗体最小化和最大化时都会获取客户区的大小并传给子控件使其位移,但是最小化时获取的窗体大小是错误的,所以导致了relativepos位置错乱,处理方法很简单,在处理WM_PAINT消息时先用IsIconic函数判断此时窗体是否最小化,只有非最小化时才调整子控件位置。
    这样,就可以完整的搜索框了。这是此项目中修复的第一个bug,mark一下。赶快去睡个觉,累死了~~
    下午把整个图片素材大致整理了一下,一共1695个素材,分类放到文件夹里





2014.7.14 19:20  Redrain
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
存储 监控 数据库
Django 后端架构开发:高效日志规范与实践
Django 后端架构开发:高效日志规范与实践
75 1
|
2月前
|
Rust 前端开发 JavaScript
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
92 1
Tauri 开发实践 — Tauri 日志记录功能开发
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL】根据binlog日志获取回滚sql的一个开发思路
【MySQL】根据binlog日志获取回滚sql的一个开发思路
|
21天前
|
监控 开发者
鸿蒙5.0版开发:使用HiLog打印日志(ArkTS)
在HarmonyOS 5.0中,HiLog是系统提供的日志系统,支持DEBUG、INFO、WARN、ERROR、FATAL五种日志级别。本文介绍如何在ArkTS中使用HiLog打印日志,并提供示例代码。通过合理使用HiLog,开发者可以更好地调试和监控应用。
67 16
|
2月前
|
开发框架 缓存 安全
开发日志:IIS安全配置
开发日志:IIS安全配置
开发日志:IIS安全配置
|
2月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
39 1
|
4月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
148 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
4月前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录是一个重要而复杂的问题。
微信小程序作为业务拓展的新渠道,其全栈开发涉及前端与后端的紧密配合。本文聚焦小程序开发中的异常处理与日志记录,从前端的网络、页面跳转等异常,到后端的数据库、API调用等问题,详述了如何利用try-catch及日志框架进行有效管理。同时强调了集中式日志管理的重要性,并提醒开发者注意安全性、性能及团队协作等方面,以构建稳定可靠的小程序应用。
68 1
|
4月前
|
人工智能 Java Spring
Spring框架下,如何让你的日志管理像‘AI’一样智能,提升开发效率的秘密武器!
【8月更文挑战第31天】日志管理在软件开发中至关重要,不仅能帮助开发者追踪问题和调试程序,还是系统监控和运维的重要工具。在Spring框架下,通过合理配置Logback等日志框架,可大幅提升日志管理效率。本文将介绍如何引入日志框架、配置日志级别、在代码中使用Logger,以及利用ELK等工具进行日志聚合和分析,帮助你构建高效、可靠的日志管理系统,为开发和运维提供支持。
71 0
|
4月前
|
JavaScript 开发工具
Electron 开发过程中主进程的无法看到 console.log 输出怎么办
Electron 开发过程中主进程的无法看到 console.log 输出怎么办