//入门 import fonts.fontAwesome; import win.ui; /*DSG{{*/ mainForm = win.form(text="高级选项卡 - 入门";right=1040;bottom=642;bgcolor=0xFFFFFF;border="none") mainForm.add( caption={cls="bkplus";text="选项卡演示";left=35;top=12;right=160;bottom=30;color=0xF0CAA6;dl=1;dt=1;font=LOGFONT(h=-16);z=5}; logo={cls="bkplus";text='\uF0AD';left=6;top=9;right=35;bottom=34;color=0xF0CAA6;dl=1;dt=1;font=LOGFONT(h=-18;name='FontAwesome');z=4}; tabButton1={cls="plus";text="测试1";left=166;top=5;right=294;bottom=40;align="left";color=0xFFFFFF;dl=1;dt=1;font=LOGFONT(h=-16);iconStyle={align="left";font=LOGFONT(h=-19;name='FontAwesome');padding={left=12;top=4}};iconText='\uF00A';notify=1;paddingLeft=1;paddingRight=1;paddingTop=3;textPadding={left=39;bottom=1};x=0.5;y=0.2;z=3}; tabButton2={cls="plus";text="测试2";left=294;top=5;right=422;bottom=40;align="left";color=0xFFFFFF;dl=1;dt=1;font=LOGFONT(h=-16);iconStyle={align="left";font=LOGFONT(h=-19;name='FontAwesome');padding={left=12;top=4}};iconText='\uF11C ';notify=1;paddingLeft=1;paddingRight=1;paddingTop=3;textPadding={left=39;bottom=1};x=0.5;y=0.2;z=6}; tabPanel={cls="custom";left=0;top=40;right=1040;bottom=643;bgcolor=0xFFFFFF;db=1;dl=1;dr=1;dt=1;z=1}; titleBar={cls="bkplus";left=0;top=0;right=1042;bottom=41;bgcolor=0xE48900;dl=1;dr=1;dt=1;z=2} ) /*}}*/ //导入"高级选项卡( tab plus control )" import win.ui.tabs; /* 高级选项卡入门指南: doc://library-guide/std/win/ui/tabs/_.md 创建"高级选项卡"步骤: 1. 在窗体上添加两个 plus 控件 mainForm.tabButton1, mainForm.tabButton2 这些 plus 控件显示在选项卡头部( header )位置,并且用于确定选项卡的外观与排列方向。 2. 在窗体上添加一个 custom 控件 mainForm.tabPanel 作为页面容器, 用于在选项卡的客户区( client area )加载子窗口以显示不同的页面内容。 然后调用下面的代码创建 win.ui.tabs 控件。 */ var tabs = win.ui.tabs(mainForm.tabButton1,mainForm.tabButton2); //可选清除 mainForm.tabButton1,mainForm.tabButton2,这些选项卡获取的默认样式与排列方向与间距已经保存。 tabs.clear(); //指定选项卡右侧预留的空白边距(用于显示下拉菜单,以及其他需要放置的控件) tabs.margin = 150; //指定所有选项卡按钮的交互样式,用法与 plus 控件相同 tabs.skin({ foreground={ active=0xFFFFFFFF; default=0x00FFFFFF; hover=0x38FFFFFF }; color={ default=0xFFFFFFFF; }; checked={ foreground={default=0xFFFFFFFF;}; color={default=0xFF42A875;}; } }) //添加更多选项卡按钮,调用参数为创建选项卡控件(plus 控件)的属性表 var tabIndex1 = tabs.add({ text="标签页1"; iconText='\uF0AD'; hasCloseButton = true; }) //继续添加选项卡按钮。 var tabIndex2 = tabs.add({ text="标签页2"; iconText='\uF0AD'; hasCloseButton = true; }) //在创建窗体并设为第一个标签页,page1 是一个 win.form 对象。 var formPage1 = tabs.loadForm(tabIndex1);//参数 1 指加载到索引为 tabIndex1 的标签页。 /* //可自参数指定的窗体代码文件加载子窗口到标签页容器,第一个参数指定选项卡索引(省略则为 #tabs.forms + 1) tabs.loadForm(tabIndex1,"\dlg\first.aardio" ); tabs.loadForm(tabIndex2,"\dlg\hotkey.aardio" ); */ // 在第一个标签页上添加按钮,用法与 winform.add 相同。 formPage1.add({ button1 = { cls="button";//指定控件类名,对应 win.ui.ctrl.button text="按钮2"; left=20;top=20;right=120;bottom=50; } } ) formPage1.button1.oncommand = function(){ formPage1.msgbox("hello") } //切换选项卡触发下面的事件 tabs.onSelChange = function(tabIndex,tabButton,form){ } /* //选项卡调整位置会触发下面的函数 tabs.adjust = function(){ var x,y,cx,cy = owner.getPos(); //获取选项卡的x,y 坐标,cx为宽度,cy 为高度 } */ //设置当前选项卡 tabs.selIndex = 1; //也可以用下面的代码自定义关闭按钮的外观样式 tabs.closeButton.skin( background = { hover = 0xFFe35c51; active = 0xFF8f241b; default = 0x99FFCC66; } color = { hover = 0xFFFFFFFF; active = 0xFFEEEEEE; default = 0xCCFFFFFF; } ) //可以自定义关闭按钮在选项卡上的显示位置 tabs.beforeShowCloseButton = function(tabButton,rcTab,rcCloseButton,dpiScaleX){ return rcTab.right - 10 * dpiScaleX, rcTab.top -2* dpiScaleX; } //在无边框窗口上添加自定义的标题栏(包含最小化、最大化、关闭等标题栏按钮) import win.ui.simpleWindow; win.ui.simpleWindow( mainForm ); mainForm.show(); win.loopMessage();