- selenium常见控件实际应用
糖果店的幽灵
seleniumselenium测试工具
selenium常见控件实际应用搜索框按钮复选框链接select下拉框input下拉框表格框架javaScipt弹窗非javaScript弹窗时间控件文件下载搜索框按钮复选框链接select下拉框input下拉框表格框架javaScipt弹窗非javaScript弹窗时间控件文件下载
- 基础antdesign的业务型 短时间控件封装(复制即可使用)
爱吃排骨
javascript前端react.js
{/*startFieldName开始时间标识endFieldName结束时间标识label同formlablerules是否开启规则校验默认开启detailData详情数据,用于编辑回显dateRange限制结束时间的范围例如:开始时间选择了2024-02-05,加上dateRange=3后只能选择2024-02-05到2024-02-08内的日期*/}importReactfrom'react
- 分享89个时间日期JS特效,总有一款适合您
记忆的小河
javascript前端
分享89个时间日期JS特效,总有一款适合您89个时间日期JS特效下载链接:https://pan.baidu.com/s/127_keimOfy_AKrCNT4TQNA?pwd=8888提取码:8888Python采集代码下载链接:采集代码.zip-蓝奏云学习知识费力气,收集整理更不易。知识付费甚欢喜,为咱码农谋福利。精确到秒的时间控件仿美团酒店的日期插件效果easyui制作带农历的日历时间格式转
- html,css,javascript学习笔记
m0_54000719
学习html5前端
学习内容:记录一下自己学习中的问题与习题(结课考试需要)学习时间:有时间就会学习的学习产出:表单解析:本题考察新增input类型的样式图中给的是可选择年数、月份的日历控件,所以选择date属性;month只能选择年、周的日历控件;date提供年月日的选择或自行输入;time显示一个时间控件,,提供时间的择或自行输入。(做这道题时候我也不是很懂,其实是根本就没见过,作为一个知识点还可以,实际做项目应
- Android开发之日期时间控件选择
informationchina
androiduiandroidstudio
Android开发之日期时间控件选择文章目录前言一、创建弹出Layout1.1新建Layout,修改样式为LinearLayout1.2Layout中添加日期和时间控件二、新建DateTimeDialog2.1创建静态方法2.1.1创建SetDateDialog,用于选择日期2.1.2SetDateDialog中绑定textView的click事件2.2引用三.总结前言整合Android原生控件(
- android 开发 时间选择器TimePicker的使用
朝阳眯眼
javaandroidandroidjava开发语言
前言我知道现在github上有很多功能强大的各色选择器,但是Android其实是自带一些时间选择器的。在不需要太复杂的ui开发下可以选择使用这些系统自带的。android系统自带时间控件:DatePicker日期显示控件DatePickerDialog日期对话框控件TimePicker时间显示控件TimePickerDialog时间对话框控件讲解TimePicker选择器的一些自定义设置首先是布局
- js获取当前时间(昨天、今天、明天)
一邑妈妈
第一、开发过程中某些前台页面的时间控件我们需要给默认当前时间,jquery可以轻松的帮我们实现//昨天的时间varday1=newDate();day1.setTime(day1.getTime()-24*60*60*1000);vars1=day1.getFullYear()+"-"+(day1.getMonth()+1)+"-"+day1.getDate();//今天的时间varday2=ne
- 如何将ElementUI组件库中的时间控件迁移到帆软报表中
帆软爱好者
帆软报表高级开发elementui前端javascript
需求:需要将ElementUI组件库中的时间控件迁移到帆软报表中,具体为普通报表的参数面板中,填报报表的组件中,决策报表的组件与参数面板中。这三个场景中分别需要用到帆软报表二开平台的ParameterWidgetOptionProvider,FormWidgetOptionProvider,CellWidgetOptionProvider开放接口来实现。这几个开放接口的开发思路后端实现相关属性的配
- ELement UI时间控件el-date-picker误差8小时解决办法
极端~
vue学习笔记uivue.js前端
一、问题描述:在项目中引用了elementui中的date-picker组件,选中的时间跟实际相差八小时,且格式不是自己想要的格式如图输入的是:得到的是二、解决办法①在data里定义变量form:{timestamp:newDate()},②在使用form.timestamp之前要对它做处理this.form.timestamp=this.YymmddFormat(this.form.timest
- vue-时间控件以及时间控件校验
悔建阿里杰克马
vuevue
:model数据区域:rules规则校验1.同时出现两个日期选择列表2.每次出现一个日期选择列表检验规则required必须录入trigger什么时候校验endDate1:[{required:true,message:"请选择保单止期起期",trigger:["change","blur"]}],endDate2:[{required:true,message:"请选择保单止期止期",trigg
- 新版时间控件整理
追逐繁星的阿忠
****1.引入参数:declareconstlaydate:any;****2.初始化时间控件reLoadTimer():void{vardoms=es('.js-timer')for(leti=0;i开始时间过期时间
- web自动化(3)——项目实战之流程用例编写
小丫么小二郎~
自动化pythonpytestselenium
我的示例项目是一个管理后台项目,各位也可以使用自己的项目进行用例流程编写业务流程:登录后点击贷款管理——新增贷款——填写表单后提交新增。我所使用的这个流程中包含了框架切换、输入框、点击、下拉选择框、文件上传、时间控件等。然后这里还将之前验证码识别和cookies的保存加载等方法进行封装,新建funcs.py,将方法移入该文件中,然后使用时进行导入即可公共方法funcs.pyimportjsonim
- PyQt6 QTimeEdit时间控件
java1234_小锋
PythonQTimeEditPyQt6PyQtpython
锋哥原创的PyQt6视频教程:2024版PyQt6Python桌面开发视频教程(无废话版)玩命更新中~_哔哩哔哩_bilibili2024版PyQt6Python桌面开发视频教程(无废话版)玩命更新中~共计39条视频,包括:2024版PyQt6Python桌面开发视频教程(无废话版)玩命更新中~、第2讲PyQt6库和工具库QTDesigner安装与配置、第3讲PyQt6第一个程序HelloWorl
- layui时间控件回显范围控制
哈皮给
前端技术js
htmljs//点击日期表单显示日期varnow=newDate()vareffectStartTime=laydate.render({elem:"#effectStartTime",type:"datetime",trigger:"click",min:(now.getFullYear()+'-'+(now.getMonth()+1)+'-'+now.getDate()+'00:00:00')
- element时间控件el-date-picker报错[Vue warn]: Avoid mutating a prop ...Prop being mutated: “placement“的问题
xu_duo_i
vue.jselementui前端
问题:解决:在使用了该组件的自定义标签处添加如下属性placement="bottom-start"即可:v-model="dateData['value']"placement="bottom-start"这只是其中一种解决办法,亲测为做简单的办法,拿去用吧
- element的el-date-picker时间控件,限制选择范围区间天数并且当前之后的日期不可选
手️摘星辰
vue.js前端javascript
element的el-date-picker时间控件,限制选择范围区间天数并且当前之后的日期不可选HTML部分代码JS代码部分data(){return{nextTime:'',dateRange:[],pickerMinDate:'',pickerOptions:{onPick:({maxDate,minDate})=>{this.pickerMinDate=minDate.getTime()i
- Diary19-Word开发工具
憨憨不怕输
word
Word开发工具一.Word控件1.什么是控件【控件】:内容可以被控制的部件2.如何打开控件【文件】->【选项】->【自定义功能区】->【勾选开发者工具】->【确定】3.不同控件的使用【内容控件】->【开发者工具选项卡】->【控件区域】->【组合框内容控件】->【增加-删除选项】:适合有限的数据选项(比较少的数据选项)【时间控件】->【开发者工具选项卡】->【控件区域】->【日期选取器内容控件】如
- iView-DatePicker时间控件的使用及格式化
jjbnxy
最近使用iView时间控件的时候,页面格式明明显示的正常格式,但用v-model往后台传的时候就变成了格林威治时间格式:FriMay2120217:00:00GMT+0800(中国标准时间)。我需要传个后端的是yyyy-mm-ddhh:mm:ss解决方法:使用@on-change=“duringTime=$event”,而不是用v-model=“duringTime”,而且我写上v-model属性
- 55-输入和显示-日期时间类及控件-日期时间控件QDateTimeEdit
士别三日,当挖目相待
#pyside6PythonGUIuijava开发语言pythonqt
日期时间控件QDateTimeEdit日期时间控件包括QDateTimeEdit,QDateEdit和QTimeEdit三个控件。这三个控件可以显示日期时间,但更多的是用于输入日期时间,QDateTimeEdit可以输入日期和时间,QDateTimeEdit是有下拉列表的日历控件用于选择日期QDateEdit只能输入日期QTimeEdit只能输人时间用QDateTimeEdit、QDateEdit
- Vue时间控件赋值后无法重选问题解决方案
humors221
vue.jselementui前端
加粗斜体的是主要代码:data(){return{time:['08:00:00','12:00:00'],beginTime:'',endTime:'',timeStr:''};}methods:{timeSelect(timeRange){this.$refs["timeRef"].value=timeRange;this.time=timeRange;},submitForm(){this.
- Qt之日历组件QCalendarWidget及日期、时间控件
~我在北京~
qt开发语言
二、主要源码2.1日历控件(calendarWidget)//窗口尺寸this->resize(600,500);calendar_label=newQLabel(this);calendar_label->setText("选择日期");//标签以及编辑框位置calendar_label->setGeometry(QRect(100,70,100,25));calendar_Edit=newQL
- js获取当前时间(昨天、今天、明天)
xwjalyf
javascript当前时间
1.开发过程中某些前台页面的时间控件我们需要给默认当前时间,jquery可以轻松的帮我们实现,代码如下//昨天的时间varday1=newDate();day1.setTime(day1.getTime()-24*60*60*1000);vars1=day1.getFullYear()+"-"+(day1.getMonth()+1)+"-"+day1.getDate();//今天的时间varday
- Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget
Simple_core
QTqt
Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidgetQDateTimeEdit属性datetime:date:time:maximumDateTime、minimumDateTime:maximumDate、minimumDate:maximumTime、minimumTime:currentSection:currentSection
- JS获取当前时间(YYYY-MM-DD ),element日期选择器el-date-picker 显示默认当前时间,显示默认昨天,显示默认上个月
web前端妹子
javascriptvuevue.jsvue.jselementuijavascript
vue+element-uiDatePicker日期选择器使用的日期组件是el-date-picker用的框架是vue+element-ui,以下是时间控件1.设置前-默认当前:2.代码案例exportdefault{name:"",components:{},data(){return{date:"",//日期}},mounted(){this.getdatatime();},/**默认显示今天
- vant组件时间选择器修改时间格式以及默认展示当天时间
昨夜小楼又东风。
笔记
vant的时间控件默认展示当天时间data(){return{maxDate:newDate()//不写具体的时间表示最大为当天minDate:newDate(1990,0,1)}}//取当天时间,并将值绑定页面就会是当天的默认值getnewDate(){letnowdata=newDate();letyear=nowdata.getFullYear();letmonth=nowdata.getM
- Java根据当前第几周获取周一和周日的日期方法
开心的码字达
开发问题java
前言:我们经常会遇到查询根据某日的日期查询数据,根据第几周查询数据,根据月份查询数据。但有的时候,接口可能需要一个开始日期和一个结束日期来查询相应的数据,然而前端的时间控件只能获取202213(2022年第13周)这样的入参,并不能给到我们13周的开始日期和结束日期,所以这时候就需要后端同学进行转换了。今天这篇文章就讲解下如何根据第几周获取周一和周日的日期和根据月份获取第一天和最后一天。正文:1.
- 时间控件DatePicker-RangePicker
小明的明
{getFieldDecorator(${item.id},{initialValue:item.defaultValue||''})(false:(e)=>this.disabledDate(e,item)}onCalendarChange={this.onCalendarChange}onOpenChange={this.onDateOpenChange}allowClear={item.al
- 前端小技巧:ELement UI时间控件el-date-picker误差8小时
xuelong-ming
webelementuijavascriptvue.js
问题前端使用框架与UI:Vue+ElementUI。在项目开发中使用到了DateTimePicker组件,在选择时间后点击查询发现查询导的内容与预期内容有所偏差,之后发现前端选中的时间在后端接收时相差了八个小时。原因我们国家的标准时间是东经120°时间(东八区),而标准时间是格林威治时间(世界时),两者相差了整整8小时。解决需要设置value-format属性,value-format=“yyyy
- C# winform 窗体应用程序-常用控件对应的功能【建议收藏】
薪薪代码
C#c#开发语言
公共控件:WinForm窗体Button按钮Textbox文本框ComboBox下拉列表框Checkbox复选框RadioButton单选框GroupBox分组控件Label标签ListBox列表框PictureBox图片框DateTimePicker日期时间控件ProgressBar进度条NumericUpDown数字输入框ToolTip气泡提示NotifyIcon托盘控件TreeView树控件
- element-ui的el-date-picker日期控件日期少一天
鱼鱼鱼三条鱼
elementuivue.js前端javascript
element-ui的el-date-picker日期控件日期少一天问题:查看到发送请求携带的日期比选中的日期少一天。解决:value-format="yyyy-MM-dd"原因:在网上找结果了,发现是因为element-ui中时间控件的默认时间为国际标准时间,所以与北京时间差8个小时在标签中加上value-format="yyyy-MM-dd"解决了,如有错误还请大家指出,谢谢!转自https:
- java工厂模式
3213213333332132
java抽象工厂
工厂模式有
1、工厂方法
2、抽象工厂方法。
下面我的实现是抽象工厂方法,
给所有具体的产品类定一个通用的接口。
package 工厂模式;
/**
* 航天飞行接口
*
* @Description
* @author FuJianyong
* 2015-7-14下午02:42:05
*/
public interface SpaceF
- nginx频率限制+python测试
ronin47
nginx 频率 python
部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:
- java线程和线程池的使用
dyy_gusi
ThreadPoolthreadRunnabletimer
java线程和线程池
一、创建多线程的方式
java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下:
1、通过实现Runnable接口方式 1 2
- Linux
171815164
linux
ubuntu kernel
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/
安卓sdk代理
mirrors.neusoft.edu.cn 80
输入法和jdk
sudo apt-get install fcitx
su
- Tomcat JDBC Connection Pool
g21121
Connection
Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。
Tomcat Jdbc P
- 敲代码的一点想法
永夜-极光
java随笔感想
入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然
- jvm指令集
程序员是怎么炼成的
jvm 指令集
转自:http://blog.csdn.net/hudashi/article/details/7062675#comments
将值推送至栈顶时 const ldc push load指令
const系列
该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用)
0x02 &nbs
- Oracle字符集的查看查询和Oracle字符集的设置修改
aijuans
oracle
本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货
- png在Ie6下透明度处理方法
antonyup_2006
css浏览器FirebugIE
由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。
我们知道PNG是图像文件存储格式,查询资
- 表查询常用命令高级查询方法(二)
百合不是茶
oracle分页查询分组查询联合查询
----------------------------------------------------分组查询 group by having --平均工资和最高工资 select avg(sal)平均工资,max(sal) from emp ; --每个部门的平均工资和最高工资
- uploadify3.1版本参数使用详解
bijian1013
JavaScriptuploadify3.1
使用:
绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下});
设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://ww
- 精通Oracle10编程SQL(17)使用ORACLE系统包
bijian1013
oracle数据库plsql
/*
*使用ORACLE系统包
*/
--1.DBMS_OUTPUT
--ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用
--语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000);
--DISABLE:用于禁止对过程PUT,PUT_LINE,NEW
- 【JVM一】JVM垃圾回收日志
bit1129
垃圾回收
将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc
-XX:+PrintGC
通
- Toast使用
白糖_
toast
Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。
创建Toast
两个方法创建Toast
makeText(Context context, int resId, int duration)
参数:context是toast显示在
- angular.identity
boyitech
AngularJSAngularJS API
angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value
*
to be returned. 返回值: 传入的value 实例代码:
<!DOCTYPE HTML>
- java-两整数相除,求循环节
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class CircleDigitsInDivision {
/**
* 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j)
- Java 日期 周 年
Chen.H
javaC++cC#
/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
*
- [高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业
comsci
计算机
不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....
以后
- 分层查询(Hierarchical Queries)
daizj
oracle递归查询层次查询
Hierarchical Queries
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:
hierarchical_query_clause::=
start with condi
- 数据迁移
daysinsun
数据迁移
最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。
1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。
2、在数据插入的时候有些字段特别长
- C语言学习二进制的表示示例
dcj3sjt126com
cbasic
进制的表示示例
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制的输出
%o表示以八进制输出
*/
return 0;
}
- NsTimer 和 UITableViewCell 之间的控制
dcj3sjt126com
ios
情况是这样的:
一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.
解决办法:
在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画
查找cell结束显示的代理
- MySql中case when then 的使用
fanxiaolong
casewhenthenend
select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人"
union
(select
pp.id as "主键",
pp.project_number as &
- Ehcache(01)——简介、基本操作
234390216
cacheehcache简介CacheManagercrud
Ehcache简介
目录
1 CacheManager
1.1 构造方法构建
1.2 静态方法构建
2 Cache
2.1&
- 最容易懂的javascript闭包学习入门
jackyrong
JavaScript
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊
- 提升网站转化率的四步优化方案
php教程分享
数据结构PHP数据挖掘Google活动
网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。
PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分
- web开发里什么是HTML5的WebSocket?
naruto1990
Webhtml5浏览器socket
当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服
- Socket初步编程——简单实现群聊
Everyday都不同
socket网络编程初步认识
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:
服务端:(接收客户端消息并把它们打印出来)
public class SocketServer {
private List<Socket> socketList = new ArrayList<Socket>();
public s
- 面试:Hashtable与HashMap的区别(结合线程)
toknowme
昨天去了某钱公司面试,面试过程中被问道
Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。
今天就动手写了一个例子,直接看代码吧
package com.learn.lesson001;
import java
- MVC设计模式的总结
xp9802
设计模式mvc框架IOC
随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分为如图2.1所示的结构[3]
(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。
该层用于向客户端用户提供GUI交互,它允许用户