HTMLayout学习笔记
by BBDXF
一、界面篇
学习界面需要有一定的HTML、CSS认知,如果你问为什么,那就当我白说。
由于界面库官方没有给一个完善的User guide,所有的学习都靠自己,而唯一的标准教程就是SDK中给的例程,所以为了完善地学习此库,以SDK中的例程一个个解析学习。
此篇主要来解析html_samples下的界面编写,我想这是大家都非常关心的话题,所以放在第一位。(PS:由于界面编写需要很多 HTML+CSS 知识,我也是新手,没有多少这方面的学习,所以如有错误纯属正常,望谅解。)
参考文档:http://www.terrainformatica.com/wiki/h-smile/drag-n-drop?do=index
1、@font-face
此例程主要讲解字体(自定义字体)在界面中的使用。(以后若无特殊情况,都会按照以下形式【文件结构+代码+解析】组织文章)
文件结构:
NinjaLine.ttf
test.htm
代码:在Style中,插入
@font-face
{
font-family: NinjaLine;
src: url(NinjaLine.ttf);
}
p
{
font: 18pt NinjaLine;
}
解析:其中font:18pt NinjaLine; 是设置段落
之内的文字以NinjaLine字体显示。而由于这种字体没有在系统里注册,所以不能直接调用,需要按照@font-face{...}的形式给予声明(和C/C++的函数声明的感觉差不多),如果是系统里已经有的字体,如“宋体”、“楷体”等就可以不声明,直接使用。
2、@image-map
这部分讲的是@image-map的用法。
文件结构:
cmd.bat
dpi-aware.htm
rttb.png
star-1x.png
star-2x.png
test.htm
toolbar-icons.htm
第一个文件:dpi-aware.htm,讲的是关于自适应DPI的问题。
代码:
@image-map dpi-aware {
src: url(star-1x.png) 100dpi,
url(star-2x.png) ;
}
#star {
size:180dip;
background: no-repeat 50% 50%;
background-image: image-map(dpi-aware);
border:1px solid;
}
#star-no {
size:180dip;
background: no-repeat 50% 50%;
background-image: url(star-1x.png);
border:1px solid;
}
//HTML代码省略
解析:
代码中比较值得注意的就是声明了一个@image-map dpi-aware {}(不专业,但是方便理解就这么说了),然后再#star这一块调用image-map(dpi-aware),将它设置为背景图片。在我的电脑上运行的效果是#star和#star-no显示的是同一张图片(大家的效果都应该差不多),但是将声明的部分改为:
@image-map dpi-aware {
src: url(star-1x.png) 90dpi,
url(star-2x.png) ;
}
之后,显示的是声明的第二张图片。为什么呢?
官方给出的说明其实已经解释了这个问题,@image-map dpi-aware 声明,当被调用时,会根据电脑屏幕的DPI(每英寸点数,win7可以通过注册表 HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetric\AppliedDPI查看),当电脑DPI小于设定的100dpi时,就会调用第一张图片,否则就是第二张了。总的来说,就是根据屏幕DPI自适应显示相应的图片。
第二个文件:test.htm 是关于设置样式的问题,官方没给任何解释,但是根据第三个文件内容,可以很明显地看出来,它啥也不是,就是个Test,Pass掉。
第三个文件:toolbar-icons.htm 这个文件很重要,他给我们提供了一种很方便地加载类似MFC中工具条界面的方法。
代码:
Style部分样式代码:
@image-map tb-icon
{
src:url(rttb.png);
cells:15 2;
items: ulist,
olist,
unindent,
indent,
picture,
table,
link,
align-left,
align-center,
align-right,
align-justify,
align,
fullscreen,
unfullscreen,
props,
bold,
italic,
underline,
strikethrough,
font-family,
font-size,
text-color,
text-back-color,
source;
}
toolbar {
display:block;
display-model:block-inside;
flow:horizontal; border-spacing:2px;
padding:0;
border-left: 1px solid #F4F4F4;
border-bottom: 1px solid #BBB;
background-color: #F1F1F1 #F1F1F1 #DADADA #DADADA;
}
toolbar > widget.button {
behavior:clickable;
size:21px;
padding:0;
foreground:no-repeat 50% 50%; padding:3px;
foreground-repeat:no-repeat;
background-image:none;
background-repeat:stretch;
hit-margin: 2px;
margin: 2px;
transition:none;
}
toolbar > widget.button.bold { foreground-image:image-map(tb-icon,bold); }
toolbar > widget.button.italic { foreground-image:image-map(tb-icon,italic); }
....(类似的省略)
Body部分Htm代码:
....其他的省略
解析:
Style部分的第一个声明@image-map和字体声明类似,声明了一个ToolBar的结构,其中,src:url(xx.png);表明Toolbar所使用的图片,一般为了美观,png要做成透明背景的。cells:15 2;表明整个Toolbar的大小为多少行多少列。items:xx1,xx2,...;表明Toolbar中有哪些项,都以名称表示,每个名称都和图片中的图标相对应。一般cells中形成的表格数一定要大于items的项目数。
toolbar{ .... }和toolbar > widget.button{....}和其类似样式的就是CSS样式了,虽然并不和平常使用的CSS完全相同,但是除了添加的一些专门适用于程序的样式之外,其他的都差不多,我只捡一些比较重要和特殊的加以说明,一般性描述的不做介绍,有问题的可以去W3CSchool和HTMLayout官网查询。
toolbar{} //设置 之间的内容的样式,这种使用方法以后会很常见
display:block; //显示当前块,一般不需要设置,默认的就是这个
flow:horizontal; //水平放置其内部块,这个很重要,是HTMLayout专用的
toolbar > widget.button{} //设置内部或者有声明的块的样式,这种用法很常见,你可以根据各块的关系随意组合下去。
toolbar > widget.button:hover{} //上一个用法的扩展,表明是在上一个样式的前提下,当鼠标移到上面时,所表现的的样式,类似的还有 :active、:disable等。
behavior:clickable;//设置它对应控件的动作为可以被点击。behavior有很多动作,每一个动作的具体含义需要查阅官方的文档。
background-image:url(theme:toolbar-button-hover); //设置背景图片,重点是后面的theme主题设置,目前未找到全的列举说明,暂时明白什么意思就行了,当然也可以自己设置对应的图片。
foreground-image-transformation: colorize(#70F); //设置当每一项被至于焦点时,图片的前景颜色,通过colorize(xx)可以改变图片的显示颜色(透明的前景色)。
toolbar > widget.button.bold { foreground-image:image-map(tb-icon,bold); } //这里才是重点的重点,它将HTML中的name="bold"(.bold)对应的widget和@image-map中的图片对应起来,{}中的bold就是在声明时指定的名称。
最后是HTML部分,重点是 这表明widget控件的类型(style)为button,其名称为bold(bold这里只是表示一个名称,不是粗体的标志),个人猜测完全可以写为 这种比较正规的写法,只是样式需要做很多调整,没有官方的方法省事。值得注意的是,CSS中的名称一定要和这里的style和class对应,原因我也不用多说了。
3、abs
文档结构:
│ abs.htm
│ abspos.htm
│ abs_fix.htm
│ fix_center.htm
│ menus.htm
│ rel_abs.htm
└─images
back.png
menu-back.png
第一个文件:abs.htm 演示的是绝对位置的不同效果。
代码:
Style部分:
#abs1 {
position:relative;
overflow:auto;
height:50%;
...
}
#abs2 {
position:absolute;
width:150px;
...
}
#abs3 {
position:absolute;
width:150px;
...
}
HTML部分(只写框架):
解析:
Style部分值得注意的就是position属性的设置,其中absolute指绝对的,relative相对的。这里的绝对是相对于当前所在的大块(母块)来说的,由于abs1的height:50%,配合overflow:auto,每次只显示一半的区块,所以拉动滑动条时它的左上角坐标是变化的,而abs2相对于他的左上角的绝对位置不变,所以abs2区块也会跟随着abs1移动。而abs3由于直接位于body之内,他的位置相对于body的左上角来绝对确定,body不变,他的位置就不会变。
做个小总结:
1、absolute:不占位、relative:有占位!position为rel的层在显示时,会占用一行!其后面的abs层只会在下一行显示出来! position为abs的层在显示时,会与后面的重叠在一起!
2、默认情况下(不结合top等来定位),absolute(绝对定位)以父层来定位的
如上面的id为abs的层,如果不结合top等来定位,则其显示位置会随父级posi层(posi在文档左下角,其也会在左下角)
3、在结合top、bottom、right、left等属性时,absolute(绝对定位)以窗口做为定位,relative以自身的占位为基线做偏移!
4、在结合top、bottom、right、left等属性时,如果想absolute(绝对定位)能以父层做为定位基线的话,则在父层应用absolute或relativ属性就可以!
HTML部分是标准的html标记,不做解释。
第二个文件:abs_fix.htm 第一个的拓展,介绍属性position:fixed; 的用法
由于其他的都和第一个类似,不做介绍,只讲解position:fixed; 的原理。
position:fixed; 除了相对位置和绝对位置,还有一个fixed(固定的),它用来定位一个区块相对于边框(上下左右)的位置,使用非常方便,通过它你可以很简单地将一个区块固定到右边框、上边框、下边框,而不同设置太多的代码。一般他需要left,right,top,bottom中的一个或者多个配合。如将一个区块设置为距右边框10px,上下10px,宽度100px,高度随框架变化,代码如下:
#fix {
position:fixed;
right:10px;
top:10px;
width:100px;
bottom:10px;
}
相当的方便和简单,唯一的缺点是在低版本的IE引擎(如IE6.0),变现的不好,不过对于HTMLayout没有问题。
第三个文件:abspos.htm 这个比第一个还简单,介绍绝对位置的,略过。
第四个文件:fix_center.htm 这个和第二个类似,是它的威力加强版。呵呵,实现居中效果。这个很简单。
左右居中: left:*;right:*;
上下居中:top:*;bottom:*;
PS: 千万不要忘了设置width:属性,这应该是理所当然的,你不给人家提供宽度,如何居中!
第四个文件: menus.htm 通过定位实现菜单的样式,这个比较有意思。这个里面没有新的内容,但是需要有一定的排版美化能力,完全用css组合成的一个菜单框架,这里也只讲解思路。
代码:
Style部分:
menu {
flow:horizontal;
padding-right:100%%;
...
}
menu li{
display:block;
position:relative;
...
}
menu menu{
flow:vertical;
display:none;
...
}
menu > li:hover > menu{
display:block;
}
HTML部分:
File
New
Open
Exit
代码解析:
先说HTML结构,先有一个
内部包含多个,每个 都作为主菜单显示的内容,在 的内部,再设置一个这样的结构,作为子菜单,还可以在主菜单下创建一个填充一些想要的控件。
CSS部分,重点是flow:horizontal/vertical;其中主菜单使用水平排列,使得每个
都成为一个单独的菜单存在,子菜单同样使用垂直排列,这样就成为了一个完整的菜单栏。
第五个文件:rel_abs.htm 相对定位,参看第一个的总结就可。
4、animated-png 动画的png(挺有意思的)
文件结构:
012-dispose-background.png
012-dispose-none.png
012-dispose-previous.png
apng.htm
bouncing-beach-ball.png
disposal.htm
loading.htm
loading_16.png
第一个文件:apng.htm 展示如何使用APNG动画
代码:
Style部分:
p:nth-child(3) { background-color:#8080ff; }
p:nth-child(2) { background-color:#ff8080; }
HTML部分:
解析:
首先说下调用问题,就和普通的图片调用一样。然后,背景的问题,可以通过设置背景色来展现不同的背景。最后需要注意一个用法:p:nth-child(3) { } 这种调用是指,第3个
标签的样式,可以用来避免多次设置class和id。
第二个文件:disposal.htm 用来展示用不同模式制作出来的动画APNG的差别,这个对于制作APNG的时候有点帮助,程序控制方面没用。
第三个文件:Loading.htm 和第一个一样。不解释。
5、animations
文件结构:
│ blend.htm
│ h-sliding-bar-csss!.htm
│ h-sliding-bar.htm
│ popup-animations.htm
│ sliding-bar-csss!.htm
│ sliding-bar.htm
│ sliding-list.htm
│
└─images
│ 2.gif
│ 4.gif
│ 5.gif
│ 7.gif
│ led-blue.png
│ led-green.png
│ led-red.png
│ led-yellow.png
│ leds.xar
│ list-back.png
│
├─cds
│ darkside.jpg
│ delicate.jpg
│ finalcut.jpg
│
└─outlook
calendar.gif
contacts.gif
folder.gif
mail.gif
notes.gif
tab-hover.png
tab.png
注:这里的文件比较特殊,如sliding-bar.htm 和sliding-bar-csss!.htm,这两个文件其实实现的是同一种效果,只是前者使用的是静态的CSS,后者使用了类似动态语言的编程,由于个人能力原因,这里只对静态的加以解释,对于想了解的各位说声抱歉。
第一个文件:Blend.htm 展示的是图片的渐变效果和一个动作
代码:
img:hover
{
foreground-image:url(images/led-red.png);
transition: blend;
}
#test { behavior:dropdown; }
#test popup img
{
foreground-image:url(images/led-yellow.png);
transition: blend;
}
#test popup img:hover
{
foreground-image:url(images/led-blue.png);
transition: blend;
}
HTML部分:
解析:
先说Blend的问题,我们能很明显地发现CSS中有这么一条属性:transition:blend;它告诉我们所有的渐变使用混合模式,这就是程序中看到的鼠标滑过之后一些浅颜色的残留,视觉效果很好。
再来说动作的问题:behavior:popup;之前也讲到过clickeable的动作,那个使一个button成为一个可以被点击的对象。这里的popup也是一个固定的动作,它使标签中的内容项菜单一样弹出。这里的弹出和之前的菜单比较类似,但是原理完全不一样。菜单弹出的是通过CSS的动作控制,将隐藏的动态显示出来,属于外部处理,而这里的就像是内部自动实现,只要你定义了popup标签,通过设置它父层的behavior,系统会自动调出下层的pop内容。
第二个文件:h-slider-bar.htm 水平的动态工具条
( 暂停更新,预计年后继续 )
转载于:https://www.cnblogs.com/bbdxf/p/3466867.html
你可能感兴趣的:(HTMLayout界面CSSS样式解析笔记)
数据挖掘十大经典算法详解(附原理解析与代码示例)
IT程序媛-桃子
华为认证 数据挖掘 算法 经验分享 华为
1.PageRank(链接分析)应用场景:搜索引擎排名、社交网络分析核心原理PageRank通过网页之间的链接关系计算网页的重要性,影响力大的网页排名更高。网页影响力=所有入链页面的加权影响力之和阻尼因子D(通常设为0.85)用于模拟用户随机访问网页的行为代码示例importnetworkxasnxG=nx.DiGraph()G.add_edges_from([("A","B"),("A","C"
嵌入式音视频开发(二)ffmpeg音视频同步
云雨歇
音视频 ffmpeg
系列文章目录嵌入式音视频开发(零)移植ffmpeg及推流测试嵌入式音视频开发(一)ffmpeg框架及内核解析嵌入式音视频开发(二)ffmpeg音视频同步嵌入式音视频开发(三)直播协议及编码器文章目录系列文章目录前言一、音视频同步1.1基础概念1.2三种同步方法二、音视频同步的实现2.1时间基的转换问题2.2音频为基准2.2.1实现思路2.2.2代码大纲2.3外部时钟同步2.3.1实现思路2.3.2
Conda 常用命令全解析
melck
conda
在Windows系统中,Conda是一款功能强大的包管理和环境管理工具,尤其对于数据分析、科学计算等场景有着重要的作用。本文将详细介绍Conda在Windows系统中的常用命令,帮助你高效地管理虚拟环境和软件包。一、环境管理命令1.1查看Conda版本conda--version该命令用于确认Conda是否成功安装以及查看其版本号。这对于确保Conda的兼容性和功能性非常重要。1.2创建新环境co
JavaScript 闭包与作用域的深度解析
小钟H呀
JS知识手册 javascript 开发语言 ecmascript
引言在JavaScript世界里,闭包和作用域是两个核心概念,理解它们对于编写高效、可维护的代码至关重要。本文将深入探讨JavaScript闭包与作用域的原理、应用及注意事项。一、作用域的概念(一)什么是作用域作用域是指变量和函数的可访问范围。在JavaScript中,主要有全局作用域和局部作用域。全局作用域:在代码的任何地方都可以访问到的变量和函数,通常在脚本的最外层或通过全局对象(如windo
深度学习之目标检测的常用标注工具
铭瑾熙
人工智能 机器学习 深度学习 深度学习 目标检测 目标跟踪
1LabelImgLabelImg是一款开源的图像标注工具,标签可用于分类和目标检测,它是用Python编写的,并使用Qt作为其图形界面,简单好用。注释以PASCALVOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持COCO数据集格式。2labelmelabelme是一款开源的图像/视频标注工具,标签可用于目标检测、分割和分类。灵感是来自于MIT开源的一款标注工具Label
DeepSeek-R1 技术全景解析:从原理到实践的“炼金术配方” ——附多阶段训练流程图与核心误区澄清...
雪停时偶遇一叶春
流程图
合集-人工智能(5)1.如何改进AI模型在特定环境中的知识检索2024-09-242.深度学习与统计学中的时间序列预测2024-10-033.《使用coze搭建一个会搜索、写ppt、思维导图的Agent》2024-10-294.深入浅出:Agent如何调用工具——从OpenAIFunctionCall到CrewAI框架01-145.DeepSeek-R1技术全景解析:从原理到实践的“炼金术配方”—
分布式数据库解析
qcidyu
文章归档 数据分片 高可用架构 云数据库 共识算法 全球一致性 分布式事务 CAP定理
title:分布式数据库解析date:2025/2/20updated:2025/2/20author:cmdragonexcerpt:通过金融交易、社交平台、物联网等9大真实场景,结合GoogleSpanner跨洲事务、DynamoDB毫秒级扩展等38个生产级案例,揭示分布式数据库的核心原理与工程实践。内容涵盖CAP定理的动态权衡策略、Paxos/Raft协议的工程实现差异、TrueTime时钟
vue3-video-play 插件在 Vue 3 项目上的应用
放逐者-保持本心,方可放逐
vue3应用 vue.js 前端 javascript vue3-video-play
文章目录vue3-video-play插件在Vue3项目上的应用一、插件简介二、插件安装三、插件组件应用示例1.局部引入组件2.全局引入组件四、需要注意的事项五、本地环境将`package.json`中`"module":"./dist/index.es.js"`改为`"module":"./dist/index.mjs"`问题解析探索问题描述原因分析解决方案格式及应用实例vue3-video-p
Java 运行时常量池笔记(详细版
小猫猫猫◍˃ᵕ˂◍
java 笔记 python
Java运行时常量池笔记(详细版)Java的运行时常量池(RuntimeConstantPool)是JVM方法区的一部分,用于存储编译期生成的字面量和符号引用。它是Java类文件常量池的运行时表示,具有动态性和共享性。运行时常量池的核心概念1.什么是运行时常量池?运行时常量池是JVM方法区的一部分,存储类文件中常量池的内容。它包含:字面量:如字符串、整数、浮点数等。符号引用:如类名、方法名、字段名
Mybatis判断问题:深入解析与实战案例
DTcode7
sql数据库相关 数据库 mysql SQL 数据库开发 sql
Mybatis判断问题:深入解析与实战案例基础概念与作用说明``标签``,``,````示例一:基本的``标签使用说明示例二:``,``,``的使用说明示例三:使用``标签简化条件语句说明实际工作中的使用技巧自行拓展内容在现代企业级应用开发中,MyBatis作为一款优秀的持久层框架,以其灵活的SQL映射机制和强大的动态SQL功能,深受广大开发者的喜爱。然而,在使用过程中,如何准确地进行条件判断,特
侯捷 C++ 课程学习笔记:C++ 面向对象开发的艺术
孤寂大仙v
c++ c++ 学习 笔记
在侯捷老师的C++系列课程中,《C++面向对象开发》这门课程让我对面向对象编程有了更深入的理解。面向对象编程(OOP)是现代软件开发中最重要的编程范式之一,而C++作为支持OOP的语言,提供了强大的工具和特性。侯捷老师通过系统的讲解和实战案例,帮助我掌握了如何在C++中高效地使用面向对象技术。以下是我对这门课程的学习笔记和心得体会。一、课程核心内容:C++面向对象开发的关键特性![侯捷老师的课程详
深入解析JVM性能问题定位与优化
测试不打烊
性能测试 jvm 性能优化
JVM性能问题定位与优化详解:架构、内存、Linux命令与监控工具的全面解析引言Java虚拟机(JVM)是运行Java应用程序的核心组件,它管理内存、执行字节码,并提供垃圾回收机制等功能。然而,随着应用规模的增长,JVM的性能问题时常会成为系统瓶颈。为了有效定位和优化JVM性能问题,我们需要从JVM架构、内存管理、Linux系统命令,以及监控工具入手,对JVM的各类指标进行详尽的分析和优化。本文将
python做一个注册界面_python如何做一个登录注册界面
weixin_39824033
python做一个注册界面
python做一个登录注册界面的方法:首先初始化一个window界面,并使用画布实现欢迎的logo;然后用代码实现登录和注册按钮;接着并进行登录判断代码;最后完成注册界面即可。【相关学习推荐:python视频教程】python做一个登录注册界面的方法:一、登录界面1、首先初始化一个window界面window=tk.Tk()window.title('WelcometoMofanPython')w
python制作登陆窗口_python登陆界面
weixin_39758494
python制作登陆窗口
广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!print(账号密码错误!请重试。)returnfalsebutton(master,text=登陆,width=10,command=test).grid(row=3,column=0,sticky=w,padx=10,pady=5)button(master,text=退出,wid
十大经典排序算法的C++实现与解析
金外飞176
算法 算法 数据结构 c++
经典排序算法的C++实现与解析在计算机科学中,排序算法是数据处理和算法设计的基础。无论是处理大规模数据还是优化小规模数据的性能,排序算法都扮演着重要角色。本文将介绍10种经典排序算法,并提供它们的C++实现代码。这些算法包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、基数排序和桶排序。1.冒泡排序(BubbleSort)原理冒泡排序是最简单的排序算法之一。它通过重
Python-tkinter自制登录界面(含注册)
GCHEK
python 开发语言
简单的用户登录、注册界面importtkinterastkimporttimeimportsubprocessimportsysimportosimporttkinter.messageboxwindow=tk.Tk()window.title('GCHEK')window.geometry('400x300')#设置储存用户信息的容器,这里用的txt。ifnotos.path.exists('U
马斯克的Grok-3:技术突破与行业冲击的深度解析
♢.*
马斯克 人工智能 大模型 xAI Grok 3
一、技术架构与核心突破超大规模算力集群Grok-3基于xAI自研的Colossus超级计算机训练完成,搭载20万块英伟达H100GPU,累计消耗2亿GPU小时,算力投入是前代Grok-2的10倍48。这一规模远超行业平均水平,例如中国团队DeepSeek-V3的算力消耗仅为Grok-3的1/2634。技术挑战:团队在122天内完成首期10万块GPU部署,克服了散热、电力供应等工程难题1。思维链推理
Docker Compose部署大语言模型LLaMa3+可视化UI界面Open WebUI
m0_74824877
docker 语言模型 ui
一、介绍Ollama:部署+运行大语言模型的软件LLaMa3:史上最强开源AI大模型—Meta公司新发布的大语言模型OpenWebUI:AI用户界面,可通过浏览器访问二、Docker部署docker-compose.yml文件如下:version:'3'services:ollama:container_name:bruce-ollamaimage:ollama/ollamavolumes:-./
CentOS 7 安装以及配置桌面环境
a4132447
linux
一、安装GNOME桌面1、安装命令:yumgroupinstall"GNOMEDesktop"-y//CentOS6的安装命令为:yumgroupinstall"XWindowSystem""DesktopPlatform"Desktop2、安装后,重启系统会出来如下界面:按“1”,回车按“2”,回车按"q",回车按“yes”,回车即可进入系统3、进入系统后,需要设置桌面为默认启动,设置命令为:s
使用 Docker 基本命令创建并发布带有新功能的镜像到阿里云
2021级计算机网络技术2班梁嘉敏
docker 阿里云 容器
1.关于Docker镜像1.基础假定您在开发一个网上商城,您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。此外,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。请问?您要如何确保应用能够在这些环境中运行和
【Python 学习 / 7】模块与文件操作
卜及中
Python基础 python 学习 数据库
文章目录前言一、导入模块1.导入整个模块2.导入模块中的特定函数3.给模块或函数起别名二、常用模块1.`math`模块2.`random`模块3.`os`模块4.`sys`模块三、文件处理1.打开文件2.读取文件3.写入文件4.关闭文件5.使用`with`语句管理文件四、日期时间1.`datetime`模块获取当前日期和时间创建日期和时间对象格式化日期和时间解析字符串为日期对象2.`time`模块
23种设计模式-享元(Flyweight)设计模式
萨达大
软考中级-软件设计师 设计模式 享元模式 软考 软件设计师 C++ 行为型设计模式 JAVA
文章目录一.什么是享元设计模式?二.享元模式的特点三.享元模式的结构四.享元模式的优缺点五.享元模式的C++实现六.享元模式的JAVA实现七.代码解析八.总结类图:享元设计模式类图一.什么是享元设计模式? 享元(Flyweight)设计模式是一种结构型设计模式,通过共享对象来减少内存占用和对象创建开销。它通过将对象的可共享部分与不可共享部分分离,减少重复对象的数量,从而节省内存。 享元模式的核心思
【学习笔记】Elasticsearch之环境搭建
聪明马的博客
elasticsearch 学习 笔记 elasticsearch
Elasticsearch官网本文是自己在学习Elasticsearch的过程中,记下的觉得非常有用的笔记,希望对大家认识Elasticsearch有一点点帮助。1.什么是Elasticsearch官网上是这么介绍的:Elasticsearchisadistributeddocumentstore.Insteadofstoringinformationasrowsofcolumnardata,El
域名被微信拦截与QQ拦截的对比分析
拦截器微信qq域名
微信与QQ作为腾讯旗下的两大社交平台,均会对存在风险的域名进行拦截,但两者在机制、表现及处理方式上存在显著差异。以下是两者的相同点与不同点,结合具体拦截表现进行解析:一、相同点触发原因相似域名历史问题:若域名曾因违规内容被举报或封禁,再次使用时可能被微信和QQ同时拦截。备案要求:未备案的域名或未加入腾讯白名单的域名,均可能被拦截。诱导分享与流量过大:频繁诱导用户分享(如“转发得红包”)或短时间内传
CSS 滚动条样式修改(详细)
mr_cmx
css css3 html
1、滚动条整体部分使用::-webkit-scrollbar示例:.container::-webkit-scrollbar{width:20px;//修改滚动条宽度}2、滚动条中的滑块使用::-webkit-scrollbar-thumb示例:.container::-webkit-scrollbar-thumb{border-radius:8px;box-shadow:inset005pxrg
使用Odoo Shell卸载模块
odoo中国
odoo odoo 开源软件 erp
使用OdooShell卸载模块我们在Odoo使用过程中,因为模块安装错误或者前端错误等导致odoo无法通过界面登录,这时候你可以使用OdooShell来卸载模块。OdooShell是一个交互式Pythonshell,允许你直接与Odoo数据库和模型进行交互。以下是使用OdooShell卸载模块的详细步骤:步骤1:启动OdooShell要启动OdooShell,你需要在终端中运行以下命令。确保你已经
全面解析 Enterprise Architect(EA)活动图的工具集:从元素到关系的详尽指南
泡沫o0
C/C++ 编程世界: 探索C/C++的奥妙 c++20 开发语言 c++ 嵌入式 qt uml arm
目录标题第一章:引言——理解活动图的重要性1.1什么是活动图?1.1.1活动图的组成元素1.1.2活动图的应用场景1.2为什么选择EA作为建模工具?1.2.1EA的强大功能1.2.2EA与其他建模工具的对比第二章:活动图中的核心元素2.1活动类元素2.1.1Activity(活动)示例:2.1.2Action(动作)示例:2.1.3Partition(泳道)示例:2.1.4Send(发送)与Rec
React学习笔记(组件通信)_千峰教育 react
m0_54846402
程序员 react.js 学习 笔记
reduxprinciple-+//定义一个dispatch的方法,接收到动作之后,自动调用constdispatch=(action)=>{changeState(action)renderCount(countState)}```创建createStore方法Reduxprinciple02reduxprinciple-+//定义一个方法,用于集中管理state和dispatchconstcr
LTC流程概述与核心要点--华为LTC流程专家许浩明老师分享心得体会
华为LTC专栏流程管理专家许浩明
华为LTC 项目管理 数据库 经验分享 云计算 区块链
销售关乎企业生死,可是很多企业的销售流程体系是散乱无序、效率低下;没能洞察市场寻找更多商机,项目线索不够多,即便有了项目线索也因为没能尽早有效跟踪培育线索而失去项目机会;难以快速响应客户需求;面向客户界面混乱,销售人员基本是单兵作战,难以形成战斗力,很多销售人员销售经验能力又不足,直接导致的结果就是:市场中标概率小、中标了交付也存在各种各样风险与问题、回款缓慢甚至最后成为“烂尾工程”应收帐款巨大…
拯救者机型背光键盘无法开启
famous_pengfei
计算机外设 笔记本电脑
如果你是联想拯救者系列笔记本电脑的用户,想必对背光键盘这一酷炫功能十分喜爱。然而,当背光键盘突然无法开启时,这无疑会让人感到困惑和沮丧。别担心,联想官方知识库已经为你准备好了详细的解决方案。文章中提到,Windows10系统下,用户可以通过开始菜单进入LenovoSettings来开启背光键盘。这个方法简单易懂,即使是电脑小白也能轻松上手。此外,文章还提供了详细的图文说明,帮助用户更直观地理解操作
桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
html 小球碰撞
稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球(设为a)前要把他的方向变为原来相反方向(与a要碰撞的小球设为b),即假如当前小球的距离小于球半径的两倍的话,马上改变当前小球方向。那么下一次绘制也是先绘制b,再绘制a,由于a的方向已经改变
《高性能HTML5》读后整理的Web性能优化内容
白糖_
html5
读后感
先说说《高性能HTML5》这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影。个人觉得作者应该首先把HTML5的大菜拿出来讲一讲,再去分析性能优化的内容,这样才会有吸引力。因为只是在线试读,没有机会看后面的内容,所以不胡乱评价了。
[JShop]Spring MVC的RequestContextHolder使用误区
dinguangx
jeeshop 商城系统 jshop 电商系统
在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。 在jshop中,对RequestContextHolder的
算法之时间复杂度
周凡杨
java 算法 时间复杂度 效率
在
计算机科学 中,
算法 的时间复杂度是一个
函数 ,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的
字符串 的长度的函数。时间复杂度常用
大O符号 表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是
渐近 的,它考察当输入值大小趋近无穷时的情况。
这样用大写O()来体现算法时间复杂度的记法,
Java事务处理
g21121
java
一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状
Linux awk命令详解
510888780
linux
一. AWK 说明
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk的处理文本和数据的方式:它逐行扫描文件,从第一行到
android permission
布衣凌宇
Permission
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>允许读写访问"properties"表在checkin数据库中,改值可以修改上传
<uses-permission android:na
Oracle和谷歌Java Android官司将推迟
aijuans
java oracle
北京时间 10 月 7 日,据国外媒体报道,Oracle 和谷歌之间一场等待已久的官司可能会推迟至 10 月 17 日以后进行,这场官司的内容是 Android 操作系统所谓的 Java 专利权之争。本案法官 William Alsup 称根据专利权专家 Florian Mueller 的预测,谷歌 Oracle 案很可能会被推迟。 该案中的第二波辩护被安排在 10 月 17 日出庭,从目前看来
linux shell 常用命令
antlove
linux shell command
grep [options] [regex] [files]
/var/root # grep -n "o" *
hello.c:1:/* This C source can be compiled with:
Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)
百合不是茶
sax技术 Java解析xml文档 dom技术 XML配置数据库连接
XML配置数据库文件的连接其实是个很简单的问题,为什么到现在才写出来主要是昨天在网上看了别人写的,然后一直陷入其中,最后发现不能自拔 所以今天决定自己完成 ,,,,现将代码与思路贴出来供大家一起学习
XML配置数据库的连接主要技术点的博客;
JDBC编程 : JDBC连接数据库
DOM解析XML: DOM解析XML文件
SA
underscore.js 学习(二)
bijian1013
JavaScript underscore
Array Functions 所有数组函数对参数对象一样适用。1.first _.first(array, [n]) 别名: head, take 返回array的第一个元素,设置了参数n,就
plSql介绍
bijian1013
oracle 数据库 plsql
/*
* PL/SQL 程序设计学习笔记
* 学习plSql介绍.pdf
* 时间:2010-10-05
*/
--创建DEPT表
create table DEPT
(
DEPTNO NUMBER(10),
DNAME NVARCHAR2(255),
LOC NVARCHAR2(255)
)
delete dept;
select
【Nginx一】Nginx安装与总体介绍
bit1129
nginx
启动、停止、重新加载Nginx
nginx 启动Nginx服务器,不需要任何参数u
nginx -s stop 快速(强制)关系Nginx服务器
nginx -s quit 优雅的关闭Nginx服务器
nginx -s reload 重新加载Nginx服务器的配置文件
nginx -s reopen 重新打开Nginx日志文件
spring mvc开发中浏览器兼容的奇怪问题
bitray
jquery Ajax springMVC 浏览器 上传文件
最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件.
在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquer
Lua的io库函数列表
ronin47
lua io
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述
io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄
多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil
java-26-左旋转字符串
bylijinnan
java
public class LeftRotateString {
/**
* Q 26 左旋转字符串
* 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
* 如把字符串abcdef左旋转2位得到字符串cdefab。
* 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
*/
pu
《vi中的替换艺术》-linux命令五分钟系列之十一
cfyme
linux命令
vi方面的内容不知道分类到哪里好,就放到《Linux命令五分钟系列》里吧!
今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号)。
其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅。
1
所有替换方案都要在冒号“:”状态下书写。
2
如果想将abc替换为xyz,那么就这样
:s/abc/xyz/
不过要特别
[轨道与计算]新的并行计算架构
comsci
并行计算
我在进行流程引擎循环反馈试验的过程中,发现一个有趣的事情。。。如果我们在流程图的每个节点中嵌入一个双向循环代码段,而整个流程中又充满着很多并行路由,每个并行路由中又包含着一些并行节点,那么当整个流程图开始循环反馈过程的时候,这个流程图的运行过程是否变成一个并行计算的架构呢?
重复执行某段代码
dai_lm
android
用handler就可以了
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
update();
handler.postDelayed(this, 5000);
}
};
开始计时
h
Java实现堆栈(list实现)
datageek
数据结构——堆栈
public interface IStack<T> {
//元素出栈,并返回出栈元素
public T pop();
//元素入栈
public void push(T element);
//获取栈顶元素
public T peek();
//判断栈是否为空
public boolean isEmpty
四大备份MySql数据库方法及可能遇到的问题
dcj3sjt126com
DB backup
一:通过备份王等软件进行备份前台进不去?
用备份王等软件进行备份是大多老站长的选择,这种方法方便快捷,只要上传备份软件到空间一步步操作就可以,但是许多刚接触备份王软件的客用户来说还原后会出现一个问题:因为新老空间数据库用户名和密码不统一,网站文件打包过来后因没有修改连接文件,还原数据库是好了,可是前台会提示数据库连接错误,网站从而出现打不开的情况。
解决方法:学会修改网站配置文件,大多是由co
github做webhooks:[1]钩子触发是否成功测试
dcj3sjt126com
github git webhook
转自: http://jingyan.baidu.com/article/5d6edee228c88899ebdeec47.html
github和svn一样有钩子的功能,而且更加强大。例如我做的是最常见的push操作触发的钩子操作,则每次更新之后的钩子操作记录都会在github的控制板可以看到!
工具/原料
github
方法/步骤
">的作用" target="_blank">JSP中 的作用
蕃薯耀
JSP中<base href="<%=basePath%>">的作用
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
linux下SAMBA服务安装与配置
hanqunfeng
linux
局域网使用的文件共享服务。
一.安装包:
rpm -qa | grep samba
samba-3.6.9-151.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-client-3.6.9-151.el6.x86_64
samba-winbind-clients
guava cache
IXHONG
cache
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的
Query的开始--全局变量,noconflict和兼容各种js的初始化方法
kvhur
JavaScript jquery css
这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。 还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解 完整资源:
http://www.gbtags.com/gb/share/5640.htm jQuery 源码:
(
美国人的福利和中国人的储蓄
nannan408
今天看了篇文章,震动很大,说的是美国的福利。
美国医院的无偿入院真的是个好措施。小小的改善,对于社会是大大的信心。小孩,税费等,政府不收反补,真的体现了人文主义。
美国这么高的社会保障会不会使人变懒?答案是否定的。正因为政府解决了后顾之忧,人们才得以倾尽精力去做一些有创造力,更造福社会的事情,这竟成了美国社会思想、人
N阶行列式计算(JAVA)
qiuwanchi
N阶行列式计算
package gaodai;
import java.util.List;
/**
* N阶行列式计算
* @author 邱万迟
*
*/
public class DeterminantCalculation {
public DeterminantCalculation(List<List<Double>> determina
C语言算法之打渔晒网问题
qiufeihu
c 算法
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。
代码如下:
#include <stdio.h>
int leap(int a) /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
if((a%4 == 0 && a%100 != 0
XML中DOCTYPE字段的解析
wyzuomumu
xml
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.
私有DTD
<!DOCTYPErootSYST