1.codeblocksV1601免费汉化版codeblocksV1601免费汉化版功能简介
2.如何高效、源码简单实现菜单拖拽排序?
codeblocksV1601免费汉化版codeblocksV1601免费汉化版功能简介
大家好,源码关于codeblocks V. 免费汉化版,codeblocks V. 免费汉化版功能简介这个很多人还不知道,源码现在让我们一起来看看吧!codeblocks.中文版是源码一款非常好用的集成开发环境,它可以帮助用户进行自定义的源码语言编程,它还提供了许多工程模板,源码dos 光驱驱动源码是源码编程人士的必备软件之一,与微软出品的源码VC++相比,CodeBlocks最大的源码优势在于它对编译器以及其版本没有限制,对于不习惯使用VC++的源码用户来说,这款软件可以成为你当前的源码最佳选择。
功能特色
虽然Code Blocks从一开始就追求跨平台目标,源码但是源码最初的开发重点是Windows平台,从年3月日版本:1.0 revision 开始,源码Code Blocks在它的源码每日构建中正式提供GNU/Linux版本,这样 Code Blocks在1.0发布时就成为了跨越平台的C/C++IDE,支持Windows和GNU/Linux。由于它开放源码的特点,Windows用户可以不依赖于VS. NET,编写跨平台C++应用。
Code Blocks提供了许多工程模板,这包括:控制台应用、DirectX应用、动态连接库、FLTK应用、GLFW应用、Irrlicht工程、OGRE应用、OpenGL应用、QT应用、SDCC应用、SDL应用、SmartWin应用、btm主题模型 源码静态库、Win GUI应用、wxWidgets应用、wxSmith工程,另外它还支持用户自定义工程模板。在wxWidgets应用中选择UNICODE支持中文。
Code Blocks支持语法彩色醒目显示,支持代码完成,支持工程管理、项目构建、调试。
Code Blocks支持插件,包括代码格式化工具AStyle;代码分析器;类向导;代码补全;代码统计;编译器选择;复制字符串到剪贴板;调试器;文件扩展处理器;Dev-C++DevPak更新/安装器;DragScroll,源码导出器,帮助插件,键盘快捷键配置,插件向导;To-Do列表;wxSmith;wxSmith MIME插件;wsSmith工程向导插件;Windows7外观。
Code Blocks具有灵活而强大的配置功能,除支持自身的工程文件、C/C++文件外,还支持AngelScript、批处理、CSS文件、D语言文件、Diff/Patch文件、Fortan文件、GameMonkey脚本文件、Hitachi汇编文件、Lua文件、MASM汇编文件、Matlab文件、NSIS开源安装程序文件、外挂作坊3.0源码Ogre Compositor脚本文件、Ogre Material脚本文件、OpenGL Shading语言文件、Python文件、Windows资源文件、XBase文件、XML文件、nVidia cg文件。识别Dev-C++工程、MS VS 6.0-7.0工程文件,工作空间、解决方案文件。
Code Blocks基于wxWidgets开发,正体现了wxWidgets的强大。以前Borland C++Builder X宣称基于wxWidgets开发跨平台、兼容性好、最优秀的C++ IDE环境,但没有实现;让我们拭目以待。国内的Code Blocks爱好者和跨平台开发员应该尽快建立中文Code Blocks网站,提供Code Blocks中文化支持,促进Code Blocks在国内的发展。
如何汉化
1、首先需要一步一步进行安装,一直点击Next选项
2、等待安装结束
3、将下载好的“zh_CN文件夹”放到“C:\Program Files (x)\CodeBlocks\share\CodeBlocks\locale文件夹”下(如果没有locale文件夹,则需要自己新建一个);
4、在codeblocks 的settings-->environment..-->viwe-->Internationlization 下选择chinese(simplifield);
5、重新运行codeblocks 即可。(此汉化已经完成%,希望能为您带来帮助)
常用快捷键
==日常编辑==
- 按住Ctrl滚滚轮,代码的macd叠加源码公式字体会随你心意变大变小。
- 在编辑区按住右键可拖动代码,省去拉,尤其是横向滚动条之麻烦;相关设置:Mouse Drag Scrolling。
- Ctrl+D可复制当前行或选中块。
- Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shift+X则解除注释。
- Tab缩进当前行或选中块,Shift+Tab减少缩进。
- 可拖动选中块使其移动到新位置,按住Ctrl则为复制到新位置。
- 按下Atl,再拖动鼠标,可以实现部分选择,即只选中一个区域内的字符,而不会包含它们所在行的其他字符)。
- 需要更大编辑空间时,F2和Shift+F2分别可以显隐下方Logs & others栏和左方的Management栏。
==自动完成与缩写==
1优化代码自动完成功能:在Code-completion and symbol browser中,
- 将Automatically launch when typed # letter中的4改成2,这样打两个字母就会有提示了。
- 将Keyword sets to additionally include中1到9都勾上,可在Syntax highlighting 的keywords...中设置,其中1是C++关键字,3是Doxygen关键字;我曾将wxWidgets的类名都加入7并设置相应的字体,粗黑体,看代码时特别舒适
- 将Delay for auto-kick-in when typing [. ->]拉到 ms,这样快点出来提示
- 选中Case-sensitive match,防止一些无关的东西干扰,如果你想它帮你纠正大小写,那就去掉勾
- 在Keyboard short-cuts中将Edit->Code complete的快捷键由Ctrl+Space改为Alt+/,因为前者与中文输入法切换冲突,该快捷键为已经输入的,不是量能监测 指标源码正在输入的词提供自动完成。
2看Abbreviation一栏,里面定义了许多缩写,还可以自定义,只要输入这些缩写,并按Ctrl+J,就可以自动完成常用的代码框架,并将光标放在恰当的地方,自定义时用|表达。常用的有:guard、class、switch等。
3如果你声明了一个类,你可以在cpp文件中右击,Insert->All class methods without implementation...来插入你还没定义的方法的定义,省去不少打字的功夫哦,也可使用Insert->Class Method declaration/implementation...来插入一个方法的声明或定义。
==导航相关==
- Ctrl+G 到达指定行,ALT+G 到达指定文件,Ctrl+Alt+G 到达指定函数,支持头文件中的函数定义,F 切换源文件与头文件。
- Ctrl+PageUp 到达上一个函数,Ctrl+PageDown 到达下一个函数。
- Ctrl+B 添加书签,Alt+PageUp和Alt+PageDown可以切换书签。
- Ctrl+Shift+B可找到匹配的括号。
- 看长代码时,可右击,Folding->Fold All,然后慢慢展开来看,也可充分利用左方Management栏的Symbol浏览器。
- 在一个变量、函数或宏上右击,三个以Find开头的菜单项,分别可以为你转到它的声明、定义和找到所有出现的地方,按F2在下方Thread Search那里查看。
其他:
- General Settings中可以设置缩进、自动换行等细节。
- 让Code Blocks永远记住你的Layout,尤其是debug的layout,善用debug工具栏。
- 备份C:/Documents and Settings/[你的用户名]/Application Data/codeblocks/Default.conf,如遇重装,将其放在codeblocks.exe所在目录,就不会丢失你的配置;这样也可以 打造出Code Blocks的绿色版。
==常用快捷键==
1、Ctrl+L 剪切选中行
2、F 切换源文件与头文件
3、F 全屏
4、Ctrl+Shift+B 括号匹配
5、按下ATL,再拖动鼠标,可以实现部分选择
6、Ctrl+B 添加书签,ALT+PageUp和PageDown可以切换书签。
7、Ctrl+G 到达指定行
8、ALT+G 到达指定文件
9、Ctrl+Alt+G 到达指定函数,支持头文件中的函数定义
、Ctrl+PageUp 到达上一个函数
、Ctrl+PageDown 到达下一个函数
特别说明
最近有不少人反应,codeblocks在安装后无法编译文件,经过检查发现是安装时没有选择上默认安装路经,如果没有按默认路经安装是需要配置编译器的路径的,比较麻烦,所以建议大家安装时“选择默认安装路径”。
如何高效、简单实现菜单拖拽排序?
本文主角是ItemTouchHelper,它是RecyclerView对于item交互处理的一个辅助类,主要用于拖拽以及滑动处理。通过接口实现的方式,达到配置简单、逻辑解耦、职责分明的效果,并且支持所有的布局方式。实现主要包含自定义一个类,实现ItemTouchHelper.Callback接口,并在实现方法中根据需求简单配置。接口包含三个必须实现的方法:getMovementFlags、onMove和onSwiped。getMovementFlags用于创建交互方式,交互方式分为两种,最后通过makeMovementFlags把结果返回回去,makeMovementFlags接收两个参数,dragFlags和swipeFlags,即上面拖拽和滑动组合的标志位。onMove方法在拖拽时回调,这里主要对起始位置和目标位置的item做一个数据交换,然后刷新视图显示。onSwiped方法在滑动时回调,这个回调方法里主要是做数据和视图的更新操作。
接下来就是把这个辅助类绑定到RecyclerView。上面接口实现部分我们已经简单写好了,逻辑也挺简单,总共不超过行代码。绑定只需要调用attachToRecyclerView就好了。至此,简单的效果就已经实现了。下面开始优化和进阶的部分。
为了优化,我们添加了设置分割线的功能。RecyclerView网格布局实现等分,我们一般先是自定义ItemDecoration,然后调用addItemDecoration来实现的。但是我在实现效果的时候遇到一个问题,因为我加了布局切换的功能,在每次切换的时候,针对不同的布局分别设置layoutManager和ItemDecoration,这就导致随着切换次数的增加,item的间隔就越大。addItemDecoration,顾名思义是添加,通过查看源码发现RecyclerView内部是有一个ArrayList来维护的,所以当我们重复调用addItemDecoration方法时,分割线是以递增的方式在增加的,并且在绘制的时候会从集合中遍历所有的分割线绘制。部分源码显示了这一过程。
既然知道了问题所在,也大概想到了3种解决办法:1.调用addItemDecoration前,先调用removeItemDecoration方法remove掉之前所有的分割线;2.调用addItemDecoration(@NonNull ItemDecoration decor, int index),通过index来维护。实际上并不太行...因为始终都有两个分割线实例。我们再来梳理一下:我想到另外一个办法,不对RecyclerView做处理了,既然两种布局都有分割线,是不是可以把分割线合二为一了,然后根据LayoutManager去绘制不同的分割线?理论上是可行的,事实上也确实可以...自定义分割线:
为了提升用户体验,我们添加了选中放大/背景变色的功能。这里用到ItemTouchHelper.Callback中的两个方法,onSelectedChanged和clearView。我们需要在选中时改变视图显示,结束时再恢复。onSelectedChanged方法在拖拽或滑动发生改变时回调,这时我们可以修改item的视图。clearView方法在拖拽或滑动结束时回调,这时我们要把改变后的item视图恢复到初始状态。
在实际需求中,我们可能还需要实现固定位置的功能。定义一个固定值,并设置不同的背景色和其他菜单区分开。在onMove方法中判断,只要是固定位置就直接返回false。虽然第一个菜单无法交换位置了,但是它还是可以拖拽的。为了进一步提升用户体验,我们可以让固定位置不可以拖拽。ItemTouchHelper.Callback中有两个方法可以实现这一点:这俩方法默认都是true,所以即使不能交换位置,但默认也是支持操作的。我们可以通过重写isLongPressDragEnabled方法把它禁掉,然后再非固定位置的时候去手动开启。
在进行拖拽操作时,下标其实是变化的,在做相应的操作时,要取实时位置。不管是拖拽还是滑动,其实本质都是对Adapter内已填充的数据进行操作,实时数据通过Adapter获取即可。如果想要实现重置功能,直接拿最开始的原始数据重新塞给Adapter即可。
在看源码时,找对一个切入点,往往能达到事半功倍的效果。这里就从绑定RecyclerView开始吧。实例化ItemTouchHelper,然后调用其attachToRecyclerView方法绑定到RecyclerView。在这一过程中,代码其实有点意思的,解读一下:关键点在于通过触摸和手势识别来处理交互显示。通过MotionEvent来判断并调用相应的回调方法,如select、checkSelectForSwipe和moveIfNecessary,最终通过invalidate()方法实时刷新界面。
总结源码,本质工作都是由源码帮我们做了,我们只需要在回调里根据结果处理业务逻辑即可。通过上述步骤,我们可以实现高效的菜单拖拽排序功能,提升用户体验。