UI控件使用说明
文章目录
- 一、控件的公共属性
- 二、常用控件的私有属性
- 三、控件的显示与隐藏
一、控件的公共属性
struct element {u32 highlight: 1; //高亮标志u32 state: 3; //内核记录控件的状态u32 ref: 5; //内核计数值u32 prj: 3; //工程序号u32 hide_action: 1; //HIDE_WITH_REDRAW,HIDE_WITHOUT_REDRAW,u32 css_num : 2; //CSS的数量u32 page: 8; //页面序号u32 prior: 9; //优先级序号,大的在上层int id; //控件idstruct element *parent; //指向父控件的指针struct list_head sibling; //兄弟控件链表头struct list_head child; //子控件链表头 struct element *focus; //焦点控件elementstruct element_css css; //css属性struct draw_context *dc; //dc,platform层使用const struct element_event_handler *handler;//库注册的handerint group; //特效使用
};
struct element_css {u8 align: 2; //对齐方式u8 invisible: 1; //是否隐藏u8 z_order: 5; //子元素排列int left; //相对于父控件的左边界坐标int top; //相对于父控件的上边界坐标int width; //相对与父控件的宽度int height; //相对于父控件的高度u32 background_color: 24; //纯色背景颜色u32 alpha: 8; //window/layer/layout背景透明度int background_image: 24; //背景图片idint image_quadrant: 8; //象限,23指针使用struct css_border border; //边框struct css_rotate rotate; //旋转属性struct css_ratio ratio; //缩放
};
控件element均放置在控件句柄的第一个元素,即element与控件句柄指向同一地址,因此在确定控件类型的情况下,可以做转换
可以通过struct element *ui_core_get_element_by_id(u32 id)获取,养成判空好习惯
二、常用控件的私有属性
LAYOUT
struct layout {struct element elm; //公共属性u8 hide: 1; //是否隐藏u8 inited: 1; //是否被加载u8 release: 6;
u8 page;
//lua使用u8 movable; // 移动标志u8 star_menu; // 满天星标志struct list_head *icon_root; // 满天星icon的listint lcd_w; // 用于移动计算int lcd_h; // 用于移动计算struct element_luascript_t *lua;struct layout *layout; const struct layout_info *info; //存储的结构const struct element_event_handler *handler; //应用层注册的句柄
};
布局是UI设计中最常用的容器
控件存放于布局之中
同一页面可以拥有多个布局,子布局之间可以进行切换(show/hide)
涉及到组合控件的情况,一般是以布局为整体进行操作(案例:抽屉列表)
PIC
struct ui_pic {struct element elm; //公共属性char source[8]; //数据源(id不唯一或不固定时使用)u8 index; //图片索引u8 page; //u8 play_mode; //播放模式:不播放、循环、单次u16 play_interval; //播放间隔msvoid *timer; //timer_idstruct element_luascript_t *lua; const struct ui_pic_info *info; //图片infoconst struct element_event_handler *handler; //应用层注册的句柄
};
struct ui_pic_info {struct ui_ctrl_info_head head;char source[8];u8 highlight;u16 cent_x;u16 cent_y;u8 play_mode;u16 play_interval;struct ui_image_list *normal_img; //非高亮图片链表struct ui_image_list *highlight_img; //高亮图片链表struct element_event_action *action;
}
struct ui_image_list {u16 num; //图片数量u16 image[0]; //图片资源id
};
显示单张图片:背景图、图片列表
显示多张图片:图片列表切换索引
切换索引的接口有如下两个:
int ui_pic_show_image_by_id(int id, int index);
int ui_pic_set_image_index(struct ui_pic *pic, int index);
id的接口是自带刷新的,常用于onkey、ontouch中
句柄接口是不带刷新的,常用于onchange事件、控件集中刷新(大面积、多控件、短时间)
一般通过切换图片索引、缩放、旋转实现需要的效果
旋转和缩放不能同时使用
缩放:比例为0.125~8,图片最大尺寸240*240
旋转:图片的旋转中心需位于图片内
TEXT\TIME\NUMBER(文本类)
struct ui_text {struct element elm; //公共属性struct ui_text_attrs attrs; //文本类公共属性char source[8]; //数据源u16 timer; //刷新定时器u16 _str[UI_TEXT_LIST_MAX_NUM]; //文本列表信息char _format[7]; //格式”strpic””text””ascii”u8 str_num; //文本列表数量u8 index; //文本列表索引u8 page; struct element_luascript_t *lua;const struct ui_text_info *info; //文本存储
const struct element_event_handler *handler; //应用层注册的句柄
};
struct ui_text_attrs {const char *str; //文本数组*生命周期长于控件显示周期const char *format; //类型int color; //文本颜色565u16 strlen; //str长度u16 offset; //偏移距离,用于滚动u8 encode: 2; //编码u8 endian: 1; //大小端u8 flags: 5; //滚动/多行等u16 displen; //文本长度const char *mulstr; //多国语言混合的数组*生命周期长于控件显示周期u16 mulstr_len; //混合长度
u16 default_code; //默认字符自定义功能(字符显示不了时,用什么符号代替)u8 x_interval; //文本水平间距
};
struct ui_time {struct element_text text; //文本型元素公共属性char source[8]; //数据源u16 year: 12; //年u16 month: 4; //月u8 day; //日u8 hour; //时u8 min; //分u8 sec; //秒u8 css_num; //css数量u8 auto_cnt; //自动计数u8 page; u32 css[2]; //css地址int color; //文本颜色int hi_color; //高亮文本颜色u16 buf[20]; //存放显示内容buffer(因此time控件不存在buffer生命周期的问题)void *timer; //定时器idstruct element_luascript_t *lua;const struct ui_time_info *info;const struct element_event_handler *handler;//应用层注册的句柄
};
struct ui_number {struct element_text text;char source[8];u16 number[2];u16 buf[20]; //存放显示数字int color;int hi_color;u8 css_num;u8 page;u8 nums: 6; //number个数u8 type: 2; //数字型or文本型u32 css[2];u8 *num_str; //指向传入文本型的字符串,因此需要考虑生命周期u8 *temp_str;u16 temp_str_len;struct element_luascript_t *lua;const struct ui_number_info *info;const struct element_event_handler *handler;//应用层注册的句柄
};
struct element_text {struct element elm; //公共属性char *str; //显示字符const char *format; //字符格式void *priv; //elementint color; //颜色值u8 x_interval; //文本间隔const struct element_event_handler *handler;//应用层注册的句柄
};
如在onchange中修改文本的值,要在show_probe中进行,在show/show_post修改需要等下一次刷新才起作用
文本包括四类显示:字库、多国语言、多国语言拼接、数字&符号图片
GRID
struct ui_grid {struct element elm; //公共属性char hi_index; //高亮项索引char touch_index; //触摸项索引char cur_dindex; //动态高亮项索引char onfocus; //列表焦点标志,用于响应touch事件u8 page_mode; //跟手滑动和按页滚动标志u8 slide_direction; //滑动方向u8 col_num; //列数u8 row_num; //行数u8 show_row; //显示行数u8 show_col; //显示列数u8 avail_item_num; //有效项数u8 pix_scroll; //触摸标志u8 ctrl_num; //传入的有效项数u8 page; //所在页面u8 child_init; //子控件初始化标志u8 rotate; //垂直列表转为旋转列表标志luaint x_interval; //水平项间距(相对数值)int y_interval; //垂直项间距(相对数值)int max_show_left; //ui库使用计算变量int max_show_top; //ui库使用计算变量int min_show_left; //ui库使用计算变量int min_show_top; //ui库使用计算变量int max_left; //ui库使用计算变量int max_top; //ui库使用计算变量int min_left; //ui库使用计算变量
int min_top; //ui库使用计算变量int energy_timer; //惯性定时器idfloat energy_vx0; //惯性速度,由tp给出float energy_vy0; //惯性速度,由tp给出float energy_a; //惯性负加速度,固定参数float energy_val; //惯性系数,用于调整惯性大小u8 energy_xdir; //惯性方向u8 energy_ydir; //惯性方向u8 energy_status; //惯性状态u8 energy_tslide; //惯性滑动时间间隔,固定参数u8 flick_endflag; //回弹结束标志u8 flick_status; //回弹状态u16 flick_cmpsize; //回弹项sizeint flick_timer; //回弹定时器idint flick_distance; //回弹距离,中间变量int flick_overdis; //回弹目标距离int flick_resdis; //回弹步进float flick_v0; //回弹初速u16 center_target_line; //居中目标中线位置:0-10000u16 center_next_threshold; //居中滑入下一项阈值:0-10000u8 center_item_offset; //居中项偏移阈值:0-(avail_item_num-1)u8 center_index_mode; //居中项:高亮项or触摸项u8 auto_center_enable; //居中模式使能u8 flick_close; //回弹关闭struct element_luascript_t *lua;struct scroll_area *area; //滑动区域,需要传入全局变量or局部静态struct layout *item; //列表子项属性struct layout_info *item_info; //列表子项infostruct ui_grid_dynamic *dynamic; //动态列表信息struct position pos; //触摸点位struct draw_context dc; //不使用struct element_touch_event *e; //不适用const struct ui_grid_info *info; //列表infoconst struct element_event_handler *handler; //应用层注册的句柄u8 key_jump; //key_jump:静态垂直或者水平列表才能使用,使用按键滚动u8 hi_move; //滑动highlight_ajust使能void (*highlight_ajust)(struct ui_grid *grid, int direction);void (*end_once)(struct ui_grid *grid);
};struct ui_grid_dynamic {int dhi_index; //动态高亮项int dcol_num; //动态列数量int drow_num; //动态行数量int min_row_index; //最小行索引int max_row_index; //最大行索引int min_col_index; //最小列索引int max_col_index; //最大列索引int min_show_row_index;int max_show_row_index;int min_show_col_index;int max_show_col_index;int grid_xval; int grid_yval; u8 grid_col_num;u8 grid_row_num;u8 grid_show_row;u8 grid_show_col;int base_index_once; //first_show第一行索引int init_step_once; //first_show初始化步进
};
Slide
struct ui_slider {struct element elm; //公共属性struct element child_elm[SLIDER_CHILD_NUM]; //左右图片和点的elmu8 step; //步进,用于编码器u8 move; //char persent; //百分比s16 left; //左边界s16 width; //宽度s16 min_value; //最小值,用于文本显示s16 max_value; //最大值,用于文本显示u16 text_color; //文本颜色565struct element_luascript_t *lua;const struct ui_slider_info *info;const struct slider_text_info *text_info;const struct element_event_handler *handler;//应用层注册的句柄
};
垂直滑动条与水平滑动条一致
Compass
struct ui_compass {struct element elm; //公共属性struct element child_elm[COMPASS_CHILD_NUM]; //子控件属性struct compass_css_info child_css[COMPASS_CHILD_NUM]; //子控件csschar source[8]; //数据源int bk_angle : 16; //背景盘角度int indicator_angle : 16; //指针角度int last_bk_angle : 16; //上一次背景盘角度int last_indicator_angle : 16; //上一次指针角度u8 updata; //更新标志u8 ctrl_num; //子控件数量void *timer; //刷新定时器idconst struct layout_info *info;const struct compass_pic_info *pic_info[COMPASS_CHILD_NUM];const struct element_event_handler *handler;//应用层注册的句柄const struct element_luascript_t *lua;
};struct compass_pic_info {struct ui_ctrl_info_head head;u16 cent_x; //旋转中心xu16 cent_y; //旋转中心ystruct ui_image_list *img;
};
表盘
struct ui_watch {struct element elm; //公共属性struct element child_elm[WATCH_CHILD_NUM]; //子控件属性struct watch_css_info child_css[WATCH_CHILD_NUM]; //子控件csschar source[8]; //数据源u8 hour; //时u8 min; //分u8 sec; //秒u8 last_hour; //上一次时u8 last_min; //上一次分 u8 last_sec; //上一次秒u8 updata; //更新标志u8 ctrl_num; //子控件数量u8 sec_cnt; //秒计数,用于匀速表盘计数u8 slow_sec; //匀速表盘使能void *timer; //timeridconst struct layout_info *info;const struct watch_pic_info *pic_info[WATCH_CHILD_NUM];const struct element_event_handler *handler;//应用层注册的句柄const struct element_luascript_t *lua;
};
struct watch_pic_info {struct ui_ctrl_info_head head;u16 cent_x; //旋转中心u16 cent_y; //旋转中心u16 dst_cent_x; //偏移距离u16 dst_cent_y; //偏移距离struct ui_image_list *img;
};struct ui_progress {struct element elm; //公共属性struct element child_elm[PROGRESS_CHILD_NUM]; //子控件属性char source[8]; //数据源u16 center_x; //圆环中心u16 center_y; //圆环中心u16 radius; //圆环半径u16 angle_begin; //起始角度u16 angle_end; //结束角度u8 ctrl_num; //控件数量char percent; //百分比u8 *mask; //不使用u16 mask_len; //不使用void *timer; //不使用const struct layout_info *info;const struct progress_highlight_info *pic_info[PROGRESS_CHILD_NUM];const struct element_event_handler *handler;//应用层注册的句柄const struct element_luascript_t *lua;
};
struct progress_highlight_info {struct ui_ctrl_info_head head;u16 center_x; //圆环中心u16 center_y; //圆环中心u16 radius_big; //外径u16 radius_small; //内径u32 color; //颜色565u16 angle_begin; //起始角度u16 angle_end; //结束角度struct ui_image_list *img;
};struct multiprogress_highlight_info {struct ui_ctrl_info_head head;u16 number;u16 center_x;u16 center_y;u16 radius0_big;u16 radius0_small;u32 color0;u16 radius1_big;u16 radius1_small;u32 color1;u16 radius2_big;u16 radius2_small;u32 color2;u16 angle_begin;u16 angle_end;struct ui_image_list *img;
};
三、控件的显示与隐藏
- 控件
线程同步接口(带刷新)
将页面id post到ui线程调用,先释放原有页面,再加载新页面
int ui_show_main(int id);
int ui_hide_main(int id);
非线程同步接口(带刷新)
需要在ui线程调用,不会主动释放原页面,可以用于多页面同时加载
int ui_show(int id);
int ui_hide(int id);
非线程同步接口(不带刷新)
控件需要在页面内
int ui_core_show(void *_elm, int init);
int ui_core_hide(void *_elm);
动态加载
一般是在init的时候调用,跟随刷新
需要注意父子关系,不能将layout加载到window下面
int create_control_by_id(char *tabfile, int page_id, int id, int parent_id);
int delete_control_by_id(int id);
相关文章:
UI控件使用说明
文章目录 一、控件的公共属性二、常用控件的私有属性三、控件的显示与隐藏 一、控件的公共属性 struct element {u32 highlight: 1; //高亮标志u32 state: 3; //内核记录控件的状态u32 ref: 5; //内核计数值u32 prj: 3; //工程序号u32 hide_action: 1; //HIDE_WI…...
树莓派2安装jupyterlab以便更好的编程体验
树莓派2 是一款很老的开发板了,但是它还能继续战斗。为了更好的编程体验,准备安装jupyterlab 安装jupyterlab 使用命令: pip install jupyterlab 该过程非常漫长,因为树莓派2是很老的板子,它需要安装一些arm7版本的…...
计算机网络常见面试题总结(上)
计算机网络基础 网络分层模型 OSI 七层模型是什么?每一层的作用是什么? OSI 七层模型 是国际标准化组织提出的一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 每一层都专注做一件事情,并且每一层都需…...
k8s 亲和性之Affinity
文章目录 1. Node Affinity(节点亲和性)节点亲和性类型配置示例常见场景: 2. Pod Affinity 和 Pod Anti-AffinityPod Affinity 配置示例Pod Anti-Affinity 配置示例常见场景: 3. 亲和性规则概述4. 亲和性和反亲和性的细节5. 亲和性…...
SpringBoot 插件化开发模式
一、前言 1.1 使用插件的好处 1.1.1 模块解耦 实现服务模块之间解耦的方式有很多,但是插件来说,其解耦的程度似乎更高,而且更灵活,可定制化、个性化更好。 举例来说,代码中可以使用设计模式来选择使用哪种方式发送…...
基于树莓派的安保巡逻机器人--项目介绍
目录 一、项目简介 二、项目背景 三、作品研发技术方案 作品主要内容: 方案的科学性 设计的合理性 四、作品创新性及特点 五、作品自我评价 本篇为项目“基于树莓派的安保巡逻机器人”介绍博客 演示视频链接: 基于树莓派的安保巡逻机器人_音游…...
Python学习笔记8-函数1
自定义函数 def 函数名(形参):函数体return 空/变量/对象/表达式 形参:函数定义时声明的参数实参:函数调用时传入的参数。函数只需要定义一次,就可以被多次使用当函数被调用时,才执行函数体,定义时不执行 文档注释 …...
如何使用ST7789展现图片?[ESP--4]
本节我们继续ESP和ST 7789的话题,这节课我们来学学如何展示图片,话不多说,先上效果 好,教程开始~前情提要,要看懂这篇,建议搭配楼主的前两期文章 使用ESP32驱动LCD-ST7789屏幕[ESP–2] 加速你的LCD-ST7789屏幕…...
【QNX+Android虚拟化方案】129 - USB眼图参数配置
【QNX+Android虚拟化方案】129 - USB眼图参数配置 1. 软件侧dts如何配置眼图参数 及 其对应关系2. 硬件 QNX 侧调试眼图命令2.1 High Speed USB2.0 Host2.2 Super Speed USB3.0 Host3. 硬件 Android 侧调试眼图命令基于原生纯净代码,自学总结 纯技术分享,不会也不敢涉项目、不…...
【机器学习】探索机器学习决策树算法的奥秘
决策树 前言基本概念常见的决策树算法ID3算法C4.5算法CART算法 决策树的优缺点应用场景决策树的可视化总结 前言 在当今这个数据驱动的时代,机器学习作为数据分析与预测的利器,正以前所未有的速度改变着我们的生活和工作方式。在众多机器学习算法中&…...
K8S版本和istio版本的对照关系
版本对照关系 下载地址1 下载地址2...
嵌入式硬件实战提升篇(三)商用量产电源设计方案 三路电源输入设计 电源管理 多输入供电自动管理 DCDC降压
引言:本文你能实际的了解到实战量产产品中电源架构设计的要求和过程,并且从实际实践出发搞懂电源架构系统,你也可以模仿此架构抄板到你自己的项目,并结合硬件篇之前的项目以及理论形成正真的三路电源输入设计与开发板电源架构块供…...
【机器学习】机器学习的基本分类-监督学习-逻辑回归-Sigmoid 函数
Sigmoid 函数是一种常用的激活函数,尤其在神经网络和逻辑回归中扮演重要角色。它将输入的实数映射到区间 (0, 1),形状类似于字母 "S"。 1. 定义与公式 Sigmoid 函数的公式为: 特点 输出范围:(0, 1),适合用…...
EasyDarwin搭建直播推流服务
学习链接 easydarwin官网 - 这里看介绍 easydarwin软件下载地址 - 百度网盘 easydarwin视频 B站 文章目录 学习链接使用下载EasyDarwin压缩包,并解压到目录启动EasyDarwin点播直播easyplayer.jsapidocffmpeg推流rtsp & ffplay拉流 使用 下载EasyDarwin压缩包…...
无人机数据处理系统:原理与核心系统
一、数据处理系统的运行原理 数据获取:无人机在飞行过程中,通过搭载的传感器(如相机、激光雷达等)采集到各种类型的数据,例如图像、点云等。这些数据是后续处理和分析的基础。 数据传输:采集到的数据会通…...
DLL中的inline static成员变量:Windows开发中的常见陷阱
在Windows平台进行C开发时,DLL(动态链接库)是一个非常重要的概念。它让我们能够实现代码的模块化和动态加载,提高了程序的灵活性和维护性。然而,当我们在DLL中使用C17引入的inline static成员变量时,可能会…...
pandas 读写excel
在Python中,使用Pandas库读写Excel文件是一个常见的操作。Pandas提供了read_excel和to_excel方法来分别实现读取和写入Excel文件的功能。以下是一些基本的示例: ### 读取Excel文件 python import pandas as pd # 读取Excel文件 df pd.read_excel(pat…...
记录Threadlocal使用
编写ThreadLocal工具类 package com.jjking.jplan.context;public class BaseContext<T> {public static final ThreadLocal threadLocal new ThreadLocal();//存储用户public static void set(Object t) {threadLocal.set(t);}//获取用户public static <T> T ge…...
2024 ccpc 辽宁省赛 E(构造 思维?)L(二分+一点点数论知识?)
E 题意: 可以注意到: 我的两种方格都四个方格的大小。 所以 如果存在一种摆放方式 那么 4|nm。 再考虑一种特殊的情况 22 ,此时虽然我的积是4 但是无法摆放的。 1>对于 4 | n,或者 4 | m.我直接摆放第二种方格就可以了。 如果我n 是4 的…...
【iOS】设计模式的六大原则
【iOS】设计模式的六大原则 文章目录 【iOS】设计模式的六大原则前言开闭原则——OCP单一职能原则——SRP里氏替换原则——LSP依赖倒置原则——DLP接口隔离原则——ISP迪米特法则——LoD小结 前言 笔者这段时间看了一下有关于设计模式的七大原则,下面代码示例均为OC…...
网络安全:攻防技术-Google Hacking的实现及应用
前言 google hacking其实并算不上什么新东西,在早几年我在一些国外站点上就看见过相关的介绍,但是由于当时并没有重视这种技术,认为最多就只是用来找找未改名的mdb或者别人留下的webshell什么的,并无太大实际用途。但是前段时间仔…...
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。-多语言
目录 C 语言实现 Python 实现 Java 实现 Js 实现 Ts 实现 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用while语句,条件为输入的字符不为\n。 C 语言实现 #include <stdio.h>int mai…...
2-2-18-9 QNX系统架构之文件系统(三)
阅读前言 本文以QNX系统官方的文档英文原版资料为参考,翻译和逐句校对后,对QNX操作系统的相关概念进行了深度整理,旨在帮助想要了解QNX的读者及开发者可以快速阅读,而不必查看晦涩难懂的英文原文,这些文章将会作为一个…...
各大浏览器(如Chrome、Firefox、Edge、Safari)的对比
浏览器如Chrome、Firefox、Edge等在功能、性能、隐私保护等方面各有特点。以下是对这些浏览器的详细对比,帮助你选择合适的浏览器。 1. Google Chrome 市场份额:Chrome是目前市场上最流行的浏览器,约占全球浏览器市场的65%以上。 性能&#…...
nginx搭建直播推流服务
文章目录 学习链接步骤使用nginx搭建直播推流服务安装依赖库下载nginx-http-flv-module模块下载nginx解压nginx,进入nginx目录设置nginx编译配置编译并安装配置nginx rtmp服务启动nginx 准备另外一台电脑下载OBS下载OBS windows | linux 安装vlc观看直播flv协议hls协…...
单片机-- 松瀚sonix学习过程
硬件:松瀚sn8f5701sg、SN-LINK 3 Adapter模拟器、sn-link转接板 软件: keil-c51(v9.60):建立工程,编辑,烧录程序 SN-Link_Driver for Keil C51_V3.00.005:安装sonix设备包和snlin…...
循环神经网络:从基础到应用的深度解析
🍛循环神经网络(RNN)概述 循环神经网络(Recurrent Neural Network, RNN)是一种能够处理时序数据或序列数据的深度学习模型。不同于传统的前馈神经网络,RNN具有内存单元,能够捕捉序列中前后信息…...
从扩散模型开始的生成模型范式演变--SDE
SDE是在分数生成模型的基础上,将加噪过程扩展时连续、无限状态,使得扩散模型的正向、逆向过程通过SDE表示。在前文讲解DDPM后,本文主要讲解SDE扩散模型原理。本文内容主要来自B站Up主deep_thoughts分享视频Score Diffusion Model分数扩散模型…...
【python使用kazoo连ZooKeeper基础使用】
from kazoo.client import KazooClient, KazooState from kazoo.exceptions import NoNodeError,NodeExistsError,NotEmptyError import json# 创建 KazooClient 实例,连接到 ZooKeeper 服务器 zk KazooClient(hosts127.0.0.1:2181) zk.start()# 定义节点路径 path…...
【设计模式系列】解释器模式(十七)
一、什么是解释器模式 解释器模式(Interpreter Pattern)是一种行为型设计模式,它的核心思想是分离实现与解释执行。它用于定义语言的文法规则,并解释执行语言中的表达式。这种模式通常是将每个表达式抽象成一个类,并通…...
手机网站制作相关文章/郴州网站seo外包
原因 在插入mongodb时,插入的是同一个字典对象字典对象字典对象,所以 _id重复,报错! 解决 只需每次创建文档字典时,都新建一个字典对象即可...
做网站都是花钱吗/关键词调整排名软件
本节书摘来华章计算机出版社《JavaScript应用程序设计》一书中的第2章,第2.18节,作者:Eric Elliott 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.18 Promises与Deferreds Promises作为一个对象,维护着成功与失败两…...
wordpress漏洞利用2016/竞价排名是按照什么来计费的
上传图片 API: wx.chooseImage() 和 wx.uploadFile() wx.chooseImage({count: 1, // 默认9sizeType: [original, compressed], // 可以指定是原图还是压缩图,默认二者都有sourceType: [album, camera], // 可以指定来源是相册还是相机,默认二者都有succe…...
成人高考考试时间/seo优化网站教程百度
使用merge merge into 表名t1using (select 数据数据 字段1,数据数据 字段2 from dual) t2on(t1.字段1 t2.字段1)when matched thenupdate set t1.字段2t2.字段2when not matched theninsert values (t2.字段1, t2.字段2) 转载于:https://www.cnblogs.com/pangkang/p/8342258.…...
西宁制作网站多少钱/优化公司治理结构
目标说明 利用scrapy抓取中新网新闻,关于自然灾害滑坡的全部国内新闻;要求主题为滑坡类新闻,包含灾害造成的经济损失等相关内容,并结合textrank算法,得到每篇新闻的关键词,便于后续文本挖掘分析。 网站分析…...
广州网站优化电话/网站测速
select distinct 列名1,列名2 from 表名 (distinct 去除重复项) select * from 表名 where 列名 between 小值 and 大值(between and 取两值之间的,前后都包含) select * from 表名 where in (值1&…...