- QT 自定义组件 界面跳转
子座
qt数据库开发语言
一、引用组件需要的类(头文件)1、按钮类QPushButton:普通按钮;QToolButton:工具按钮;QRadioButton:单选按钮;QCheckBox:复选按钮;QCommandLinkButton:命令连接按钮;2、布局类QHBoxLayout水平QVBoxLayout垂直QGridLayout网格QFormLayout表单QSrackedLayout.堆栈3、输出类QLabel:标
- Python -- GUI图形界面编程—GUI编程实例 博主也在持续学习中[ 持续更新中!!! 欢迎白嫖 也求粉啊啊啊~ ]
梦茹^_^
Python_GUI编程python开发语言GUI经验分享前端框架前端组件
本文继上篇文章http://t.csdnimg.cn/rrsIL继续介绍GUI的图形界面编程(相关视频是哔站上的应该搜这个题目就能找到),文章还是很基础的,目前博主处于有一点基础的状态。文章的主要介绍了依旧非常重要的结构tinkter库、重要组件简介(这个不用死记硬背用的时候再说)、Text(多行文本框)、Radiobutton、Checkbutton、Canvas画布,依旧是很多代码部分是重复的
- QRadioButton开发详解以及实例
三雷科技
QT小王子QRadioButtonqtqt单选框单选框c++单选框c++
QRadioButton开发详解以及实例1.创建QRadioButton2.设置和获取状态3.使用QButtonGroup管理多个QRadioButton4.信号与槽5.样式设置QRadioButton是Qt框架中用于提供单选按钮的类,它允许用户从一组选项中选择一个。以下是对QRadioButton知识点的一个总结及详细解析,并附上实例代码。1.创建QRadioButton知识点:你可以通过QRa
- Python之tkinter模块
唱戏先生
python基础
较全的tkinter翻译:https://segmentfault.com/a/1190000014280410全系列:[译][Tkinter教程01]入门:Label控件[译][Tkinter教程02]Message控件[译][Tkinter教程03]Button控件[译][Tkinter教程04]Variable类[译][Tinkter教程05]Radiobutton控件[译][Tkinter
- 图形化用户界面-Swing组件
好哈优学编程
java用户界面
1.按钮和按钮组按钮(JButton)用于触发某些操作。按钮组(ButtonGroup)用于将多个单选按钮(JRadioButton)分组,确保在同一组中的按钮只能选中一个。JButtonbutton=newJButton("ClickMe");//按钮组ButtonGroupgroup=newButtonGroup();JRadioButtonradio1=newJRadioButton("Op
- python自动化工具之pywinauto_python自动化工具之pywinauto(二)
weixin_39552768
python自动化工具之pywinauto(二)python自动化工具之pywinauto二pywinauto的使用各控件的操作如何匹配控件如何操作控件pywinauto的使用——各控件的操作对于常见的窗口程序,需要点点填填的控件有输入框(Edit)、按钮(Button)、复选框(CheckBox)、单选框(RadioButton)、下拉列表(ComboBox).关于各个控件的函数方法,可以查阅官
- HTML世界之第三重天
阳阳大魔王
HTMLhtml前端笔记开发语言javascript
目录一、HTML列表1.无序列表2.有序列表3.自定义列表4.列表标签二、HTMLdiv和span1.区块元素2.内联元素3.div元素4.span元素5.HTML分组标签6.div和span的区别三、HTML表单和输入1.HTML表单2.HTML表单-输入元素3.输入类型-文本域(TextFields)4.输入类型-密码字段5.输入类型-单选按钮(RadioButtons)6.输入类型-复选框(
- Avalonia学习(二十四)-系统界面
jason成都
学习Avaloniaui
目前项目式练习,界面内容偏多,所以不给大家贴代码了,可以留言交流。此次为大家展示的是物联项目的例子,仅仅是学习,我把一些重点列举一下。界面无边框以前的样例主要是通过实现控件来完成的,前面已经有窗口标题的例子,此次是直接绘制的网页加载和前面的例子一样,cef控件使用radiobutton利用该控件实现页面切换,不是使用tabcontrol.通过样式实现菜单切换图表控件和前面例子一样,使用控件实现柱状
- 17.Qt 单选框相关操作
都是报错快CV吧
QT学习记录与资源提供qt数据库开发语言uivisualstudio
目录前言:技能:内容:1.布置界面2.管理3.槽函数参考:前言:组合选择只能选择一个的单选框实现,以及管理组合单选框技能:内容:1.布置界面先在ui界面中拖个GroupBox,再在GroupBox里面拖几个RadioButton,拖动完后自动就实现了被放在一个GroupBox里面的RadioButton只会有一个被选择到,右侧对象可以显示出父类情况2.管理首先了解到这个类可以方便管理多个Radio
- Android点击可取消的RadioButton。
HaoKe
需求场景举例:新增地址中地址标签属性家/学校/公司三选一点击选中的取消选择实现方式:继承AppCompatRadioButton,重写toggle方法。上代码:publicclassXXXButtonextendsAppCompatRadioButton{publicXXXButton(Contextcontext){this(context,null);}publicXXXButton(Cont
- python 第九章 —— GUI界面开发(tkinter详解)
余识-
Python从入门到精通python
文章目录前言一、GUI与CLI对比二、GUI原理三、tkinter基本使用1.主窗口2.控件(1)button(2)布局(3)Frame(以微信布局为例)(4)Label(5)Entry(6)Text(7)Checkbutton(8)Radiobutton<
- ASP.NET Web Forms - Hashtable 对象
成长之路514
ASP.net前端asp.net数据库
Hashtable对象包含用键/值对表示的项目。尝试一下-实例HashtableRadiobuttonList1HashtableRadiobuttonList2HashtableDropDownList创建HashtableHashtable对象包含用键/值对表示的项目。键被用作索引,通过搜索键,可以实现对值的快速搜索。通过Add()方法向Hashtable添加项目。下面的代码创建了一个名为my
- Jetpack之RadionBtton、Switch、Checkbox组件介绍
左大星
JetpackComposeAndroid进阶androidandroidjetpackandroid-jetpackkotlin
JetpackCompose系列(9)-RadionBtton、Switch、Checkbox组件介绍RadioButton跟View体系一样,Compose也有RadioButton单选按钮组件,遵从MaterialDesign风格。其构造函数如下:@ComposablefunRadioButton(selected:Boolean,onClick:(()->Unit)?,modifier:Mo
- Python tkinter (5) 选项按钮与复选框
JSON_L
#Tkinterpython开发语言后端
Python的标准TkGUI工具包的接口tkinter系列文章pythontkinter窗口简单实现Pythontkinter(1)——Label标签Pythontkinter(2)——Button标签Pythontkinter(3)——Entry标签Pythontkinter(4)——Text控件目录CheckButton简单示例获取选中Radiobutton简单示例总结CheckButton多
- QT学习笔记4 控件QRadioButton使用方法和案例
彭小宴
qt学习笔记
单选按钮QRadioButton介绍使用方法文本选中状态信号槽UI界面案例ui设计界面代码介绍相信用过电脑的人,一定见过附有单选按钮的软件界面,如下所示:单选按钮常用于“多选一”的场景,一组单选按钮中,一次只能选择一个单选按钮使用方法文本和前几篇一样,可以获取文本和设置文本,使用方法我就不过多介绍了//获取和设置显示的文本QStringtext()constvoidsetText(constQSt
- qt学习笔记7:控件、自定义控件封装
听说西佳佳难得很
QT学习qt学习ui
系统提供的控件们按钮组:QPushButton常用按钮QToolButton工具按钮用于显示图片,如果想显示文字,可以修改风格RadioButton单选框如果想设置默认ui->空间名->setCheckedCheckBox多选按钮,也可以设置监听状态2是选中1是半选中0未选中QListWidge控件:写文字的信息QTreeWidge控件:设置头,创建根节点添加根节点到树控件上QTableWidge
- ABAP 中Parameters參數
JamesG0204
ABAPsapabap
語句結果MemoryIDpid分配內存參數,PID是SAP內存IDModifIDmodid指定screen-group,用於分組控制畫面屬性Lowercase區分大小寫AsCheckbox單選框,選中為’X’-Radiobuttongroupradio複選框valuecheck可以繼承表字段屬性來檢查checktable的值(外部鍵)like(g)動態定義參數,運行時g中應該分配ABAP數據字典中
- Python通过Tkinter设计GUI(更新中)
qq_755682240
Pythonpython嵌入式GUI
目录一、Tkinter组件介绍二、Label标签控件1、语法格式如下:2、简单示例:三、Button按钮控件1、语法格式如下:2、简单示例:四、Entry输入控件1、语法格式如下:2、简单示例:五、Checkbutton多选框控件1、语法格式如下:2、简单示例:六、Radiobutton单选框控件1、语法格式如下:2、简单示例:七、Combobox下拉列表框控件1、语法格式如下:2、简单示例:八、
- qt 命令按钮组 Buttons
qt_程序猿
qt笔记-基础控件相关qtqt5
qt命令按钮组(Buttons)控件名:PushButton:命令按钮ToolButton:工具按钮RadioButton:单选按钮CheckBox:复选框按钮CommandLinkButton:命令连接按钮DialogButtonBox:按钮盒应用举例:1.PushButton:命令按钮在Qt中,PushButton是一种常用的用户界面控件,用于在应用程序中实现一些简单的交互操作。主要作用就是当
- Qt 常用控件按钮Button 案例分析
热爱嵌入式的小佳同学
QTc++qt
目录常用控件按钮1.QPushButton2.QToolButton3.QRadioButton4.QCheckBox5.QCommandLinkButton6.QDialogButtonBox常用控件按钮PushButton:命令按钮。ToolButton:工具按钮。RadioButton:单选按钮。CheckBox:复选框按钮CommandLinkButton:命今链接按钮DialogButt
- rn 多选按钮和单选按钮
米开朗骑騾
多选按钮:react-native-flexi-radio-buttonimport{RadioGroup,RadioButton}from'react-native-flexi-radio-button'this.setState({reason:value//根据value显示对应的文字})}>其他险峻地带风景点
- recycleView editView RadioButton 焦点抢占
杜白白白
一个recycleView里有editview和radioButton,在每次点击radioButton的时候会滚回到editView,体验很不好初步判断是editView抢占了焦点,一直在editView上,所以导致一直在editView上,希望的结果是每次点击radioButton的时候,可以不要滚动,所以我就在每次点击radioButton的时候加上焦点chooseBtn.setFocusa
- Qt6入门教程 12:QAbstractButton
草上爬
Qt6入门教程Qt控件按钮QAbstractButton自定义
目录一.状态二.信号三.使用1.自定义按钮2.多选3.互斥QAbstractButton类实现了一个抽象按钮,并且让它的子类来指定如何处理用户的动作,并指定如何绘制按钮。QAbstractButton类是所有按钮控件的基类。QAbstractButton提供了对按钮点击和勾选的支持。QRadioButton和QCheckBox类默认支持勾选,QPushButton和QToolButton默认支持点
- Qt6入门教程 15:QRadioButton
草上爬
Qt6入门教程QtQRadioButton单选按钮
目录一.简介二.常用接口三.实战演练1.径向渐变2.QSS贴图3.开关效果4.非互斥一.简介QRadioButton控件提供了一个带有文本标签的单选按钮。QRadioButton是一个可以切换选中(checked)或未选中(unchecked)状态的选项按钮。单选按钮运行用户多选一,也就是说,在一组单选按钮中,每次只有一个能选中,如果用户选择了另一个,那么之前那个就会切换到未选中状态。单选按钮默认
- UI 组件 | Toggle
测试开发小白变怪兽
Toggle(复选框)组件Toggle是一个CheckBox,当它和ToggleGroup一起使用的时候,可以变成RadioButton。创建Toggle组件层级管理器右击->创建节点->创建UI节点->Toggle即可创建Toggle组件。节点说明Toggle组件的节点树一般为:注:checkmark在层级结构上要在Background上面,或者是Background的子节点。属性介绍创建成功后
- PyQt5零基础入门(九)——选项框(QRadioButton、QCheckBox)与下拉框(QComboBox)
艾醒(AiXing-w)
PyQt5入门到实践qt开发语言
前言选项框(QRadioButton和QCheckBox)和下拉框(QComboBox)都是Qt框架中常用的控件,用于用户输入和界面交互。下面是它们的简单介绍。单选框按钮控件(QRadioButton)QRadioButton(单选按钮)通常用于在一组选项中只能选择一个的情况。用户可以点击以选中或取消选中一个单选按钮。fromPyQt5.QtWidgetsimport*fromPyQt5.QtCo
- Android底部导航栏创建——ViewPager + RadioGroup
星月黎明
androidgitee
Android底部导航栏有多种实现方式,本文详解其中的ViewPager+RadioGroup方式的实现步骤。我们先来看以下看一下最终做出的效果,使大家有个基本概念。本结构特点:1,ViewPager部分触摸左右滑动切换页面,RadioGroup部分中的RadioButton随着自己对应的ViewPager页面出现选中时的状态,包括改变背景颜色,改变文字颜色,改变图片。其他RadioButton则
- PyQt5学习笔记11 - QSpinBox & QSlider
庄周幻梦
前文PyQt5学习笔记6-QLabelPyQt5学习笔记7-QLineEditPyQt5学习笔记8-QTextEditPyQt5学习笔记9-QPushButton&QRadioButtonPyQt5学习笔记10-QCheckBox&QComboBox本文概述QSpinBox,QSliderQSpinBox计数器QSpinBox是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘
- Qt单选按钮
SauronKing
程序设计-Qtqt开发语言
前言本篇文章介绍Qt的单选按钮,就是QRadioButtonQRadioButton是一个选项按钮,可以打开(选中)或关闭(取消选中)。单选按钮通常向用户提供“众多之一”的选择。在一组单选按钮中,一次只能选中一个单选按钮;如果用户选择另一个按钮,则先前选择的按钮将关闭。使用条件必须包含头文件QRadioButton#include必须添加widgets模块QT+=widgets继承关系QRadio
- 手拉手JavaFX UI控件与springboot3+FX桌面开发
QGS-CD
javauijavajavascript
目录javaFx文本javaFX颜色字体Label标签Button按钮//按钮单击事件鼠标、键盘事件//(鼠标)双击事件//键盘事件单选按钮RadioButton快捷键、键盘事件CheckBox复选框ChoiceBox选择框Text文本TextField(输入框)、TextArea文本域//过滤(传入一个参数(过滤后)返回一个参数)//过滤2案例password密码字段Hyperlink超链接Pr
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http