HTMLayout列表控件动态添加列表项,预览本机字体。
import win.ui; import win.font; /*DSG{{*/ var winform = win.form(text="HTMLayout列表框 - aardio编程学习";right=599;bottom=399;maxmize=1;parent=...) winform.add() /*}}*/ import web.layout; wbLayout = web.layout( winform ) wbLayout.html = /** <html> <body> <widget type="select" id="fontlist"> </widget> </body> </html> **/ wbLayout.css = /** widget#fontlist { width:100%%; height:100%%; } widget#fontlist option{ height:30px; font-size:25px; margin:2px 0px; border:1px dotted green; } **/ //枚举本机包含GB2312的字体 win.font.enum( function(logfont,fullname,ftype,style,script,lpntme){ if( ftype == 0x4/*_TRUETYPE_FONTTYPE*/ && fullname[1] != '@'#/*翻转90度字体*/ ){ //创建一个option元素 var ele = wbLayout.createEle("option","字体名称:"++fullname++" 学习aardio编程语言!123456789 www.aardio.com"); //将创建的元素ele追加到id="fontlist"的widget元素中 wbLayout.getEle("fontlist").append(ele); //设置新建的option元素的字体 ele.style["font-family"]='\"'+fullname+'\"'; } },{ charset = 0x86/*_GB2312_CHARSET*/; name = "" } ) winform.show() win.loopMessage();
<widget>标签支持 height:100%%; 这种两个百分号的写法,<select>标签不支持。
动态设置元素字体的时候字体名字要用两个'\"'双引号把字体名字括起来,不然不会生效。如下
ele.style["font-family"]='\"'+fullname+'\"';
使用Htmlayout做界面是很不错的选择!! ^_^