【第四章4.2】菜单 -- 窗口菜单

贴主:admin 发贴:2024-07-28 11:06 浏量:20
//窗口菜单
import win.ui;
import win.ui.menu;
/*DSG{{*/
var winform = win.form(text="菜单用法演示";right=497;bottom=345)
winform.add()
/*}}*/

/*
注意使用菜单需要先调用 import win.ui.menu,不然发布后会报错。
开发环境下运行,为了加快启动速度,不会百分百排除所有没有引用的库,
当然大家也可以像其他开发工具那样,每次都发布成 EXE 文件后再运行。
*/
var menuFile = win.ui.popmenu(winform);//创建弹出菜单
menuFile.add(
	"打开",
	function(id){
			winform.msgbox("打开文件")
	} 
) 

//------------------------------------
var menuHelp = win.ui.popmenu(winform);//创建弹出菜单
menuHelp.add(
	"关于",
	function(id){
			winform.msgbox("关于")
	} 
)
menuHelp.add(); //添加分隔线

menuHelp.addTable( {
	{ "帮助";
		function(id){
			winform.msgbox("帮助")
		} 
	};
	{ /*---分隔线---*/ };
	{ "退出";
		function(id){
			winform.close()
		} 
	};
} )

var menuRadio = win.ui.popmenu(winform);//创建弹出菜单
menuRadio.onMenuItemClick = function(id){
	menuRadio.selId = id;
	winform.msgbox( menuRadio.selText )
}

menuRadio.add("a" ) 
menuRadio.add("b" ) 
menuRadio.add("c" ) 

var menu = win.ui.menu(winform);//创建主菜单
menu.add('文件',menuFile) 
menu.add('帮助',menuHelp) 
menu.add('选择其中一个',menuRadio)

//主菜单构建完成后要用下面这句更新,menu.addTable()会自动调用redraw()
//menu.redraw(); 

menu.addTable( {
    { "测试菜单"; 
    		{ 
    			{   "子菜单";
    				function(id){
            			winform.msgbox("测试菜单->子菜单")
        			} 
        		};
        		{   "子菜单2";
    				function(id){
            			winform.msgbox("测试菜单->子菜单2")
        			} 
        		}   
    		} 
    }; 
    { "测试菜单2"; 
    		{ 
    			{   "子菜单";
    				function(id){
            			winform.msgbox("测试菜单2->子菜单")
        			} 
        		};
        		{   "子菜单2";
    				function(id){
            			winform.msgbox("测试菜单2->子菜单2")
        			} 
        		}   
    		} 
    }; 
} )

winform.show() 
win.loopMessage();



自己写的案例,多级菜单  注意:需要先添加弹窗菜单,然后在添加主目录

// 导入 win.ui 库,用于创建图形界面
import win.ui;

// 导入 win.ui.menu 库,用于创建菜单
import win.ui.menu;

// 导入 win.dlg.message 库,用于显示消息对话框
import win.dlg.message;

/*DSG{{*/
// 创建一个窗口,窗口标题为 "aardio form菜单开发教程"
var winform = win.form(text="aardio form菜单开发教程";right=759;bottom=469)

// 在窗口中添加控件,这里留空,因为不需要添加任何控件
winform.add()
/*}}*/


/*子菜单部分{{*/
// 创建一个弹出菜单
popmenu = win.ui.popmenu(winform);
// 向弹出菜单中添加菜单项 "打开",并为其指定一个响应函数
popmenu.add('打开',function(id){
    // 在下面输入菜单响应代码
    winform.msgOk("准备打开文件....");
});
// 添加一个分隔线
popmenu.add();
// 向弹出菜单中添加菜单项 "退出",并为其指定一个响应函数,响应函数中关闭窗口
popmenu.add('退出',function(id){ winform.close() });

// 创建一个帮助弹出菜单
helpmenu = win.ui.popmenu(winform);
// 向帮助弹出菜单中添加菜单项 "关于我们",并为其指定一个响应函数
helpmenu.add("关于我们",function(){
    winform.msgOk("关于我们");
});
// 添加一个分隔线
helpmenu.add();
// 向帮助弹出菜单中添加菜单项 "激活软件",并为其指定一个响应函数
helpmenu.add("激活软件",function(){
    winform.msgbox("激活软件中....");    
});
/*}}*/

/*主菜单部分{{*/
// 创建一个主菜单
var menu = win.ui.menu(winform);
// 向主菜单中添加一个名为 "文件" 的菜单项,并为其指定一个弹出菜单
menu.add('文件', popmenu);
// 向主菜单中添加一个名为 "帮助" 的菜单项,并为其指定一个弹出菜单
menu.add('帮助', helpmenu); 

// 使用表方式向主菜单中添加菜单项
menu.addTable( {
     {"菜单测试";
         { 
             { "子菜单2";function(id){ winform.msgAsk("我是子菜单2")  }};
             { "子菜单2";function(id){ winform.msgAsk("我是子菜单2")  }};
             {"二级菜单";
                 {
                     {"三级菜单1";function(id){ winform.msgAsk("我是子菜单2")  }};
                     {"三级菜单2";function(id){ winform.msgAsk("我是子菜单2")  }};
                     {"三级菜单3";function(id){ winform.msgAsk("我是子菜单2")  }};
                     {"四级菜单";
                         {
                             {"4级菜单1";function(id){ winform.msgAsk("我是子菜单2")  }};
                         }
                     }
                 }
             }
         }
     };
      
} )
/*}}*/

// 显示窗口
winform.show();
// 启动消息循环,处理窗口事件
win.loopMessage();
// 返回 winform 对象,用于后续操作
return winform;

软件演示:

相关回复


    暂无评论!

发表回复