救助,我想制作一个像 lily 一样的桌面启动器,但不知道列表控件如何联动

小小杨 1月前 480

我想实现以下功能,如图所示。有没有大佬不吝赐教一下?

1.当点击 a 区上的分组项,b 区会显示这个组的内容,当点击 b 区的列表项,c 区会显示该项的分组内容.

2.c 区响应拖放的文件.当拖放软件图标或者文件进入 c 区的时候,在 c 区生成该软件或者文件的图标,图标下面是软件名称.该文件的路径记录到SQLite数据库中.点击这个图标的时候,启动软件或者打开文件.

3.a 区和 b 区右键都有生成新建项目和删除的菜单功能。

4.如果用listview控件不能实现,用其他方法,控件实现也行。


上传的附件:
最新回复 (8)
  • admin 1月前
    0 2
    win.ui.tabs平行导航+win.ui.tabs垂直子导航+puls基本搞定
  • 小小杨 1月前
    0 3
    好的,谢谢
  • 光庆 1月前
    1 4
    我一看到这种布局,首先想到的是 godking.customPlus 库。
  • 小小杨 26天前
    0 5
    光庆 我一看到这种布局,首先想到的是 godking.customPlus 库。
    好的,谢谢。我去研究一下。
  • amin 11天前
    0 6
    此楼层已删除
  • amin 11天前
    1 7
    import win.ui;
    import fonts.fontAwesome
    /*DSG{{*/
    var mainForm = win.form(text="aardio form";right=739;bottom=459;border="none")
    mainForm.add(
    custom={cls="custom";left=160;top=36;right=740;bottom=459;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;z=5};
    leftplus={cls="plus";left=160;top=4;right=560;bottom=34;dl=1;dt=1;notify=1;z=3};
    plus2={cls="plus";text='\uF015     轻松自在';left=0;top=0;right=160;bottom=36;dl=1;dt=1;font=LOGFONT(h=-14;name='FontAwesome');z=4};
    tabplus={cls="plus";left=0;top=36;right=160;bottom=457;db=1;dl=1;dr=1;dt=1;notify=1;z=1};
    titleBar={cls="bkplus";left=0;top=0;right=741;bottom=34;bgcolor=14977280;dl=1;dr=1;dt=1;z=2}
    )
    /*}}*/
    
    import win.ui.simpleWindow;
    win.ui.simpleWindow( mainForm );
    
    
    
    
    
    mainForm.show();
    
    import godking.customPlus
    //顶部Tab栏
    tabModel = {
    		{	// 项目背景 0x88FFFFFF
    			type="rect",
    			click=true;
    			rectf={x=0;y=0;width=0;height=0},
    			width=-1;
    			color = 0xFF0089E4;
    			fillcolor=0xFF0089E4,
    			itemhoverfillcolor=0xFFC2C2FF,
    			itemselectedfillcolor=0x88FFFFFF;
    			disabledfillcolor=0xFFEEEEEE,
    			},
    		{
    			name="logo",
    			type="text",
    			rectf={x=10;y=6;width=30;height=30},
    			AntiAlias=true,
    			font={name="FontAwesome",point=14,color=0xFF1e50a2},
    			itemhoverfont={name="FontAwesome",point=15,color=0xFFFFFFFF},
    			},
    
    		{
    			name="title",
    			type="text",
    			AntiAlias=true,
    			rectf={x=20;y=5;width=-10;height=40},
    			font={name="Tahoma",point=11,color=0xFF5d492c},
    			itemhoverfont={name="Tahoma",point=12,color=0xFFFFFFFF},
    			align=1
    			},
    	}
    
    tabList = {{title ="主页",logo = '\uF015'},{title ="进度",logo = '\uF044'},{title ="材料",logo = '\uF0D1'},{title ="班组",logo = '\uF0C0'},} 
    
    var tab = godking.customPlus(mainForm.leftplus/*plus*/,tabModel,tabList,{
    		itemWidth=100,
    		itemHeight=36,	
    		autoSizeRow=false,	
    		autoSizeCol=true,	
    		colnum=0, 
    		rownum=1, 
    })
    
    tab.onClick = function(itemIndex/*项目索引*/,elemIndex/*元素索引*/,elemID/*元素id*/,elemName/*元素name*/,pageIndex/*当前页项目索引*/){
    		win.msgbox(itemIndex);
    		var frist = mainForm.custom.loadForm("\dlg\"+itemIndex+".aardio");
    		frist.show();
    		
    	}
    
    	
    //左侧菜单
    	leftModel = {
    		{	// 项目背景
    			type="rect",
    			click=true;
    			rectf={x=0;y=0;width=0;height=0},
    			width=2;
    			color = 0x88FFFFFF;
    			fillcolor=0xFFdcd3b2,
    			itemhoverfillcolor=0xFF9d896c,
    			itemselectedfillcolor=0xFFCdB99c;
    			disabledfillcolor=0xFFEEEEEE,
    			},
    		
    		{
    			name="title",
    			type="text",
    			AntiAlias=true,
    			rectf={x=0;y=6;width=-9;height=36},
    			font={name="Tahoma",point=13,color=0xFF5d492c},
    			itemhoverfont={name="Tahoma",point=14,color=0xFFFFFFFF},
    			align=1
    			},
    	}
    leftList = {{title ="喜洋洋"},{title ="暖洋洋"},{title ="懒洋洋"}}
    /*for(i=1;3;1){
    	..table.push(leftList,	{
    			logo=eval("'\uF01"++(i+5)++"'"),
    			title="132"++i,
    	})
    }*/
    var left = godking.customPlus(mainForm.tabplus/*plus*/,leftModel,leftList,{
    		itemWidth=160,
    		itemHeight=36,	
    		autoSizeRow=false,	
    		autoSizeCol=true,	
    		colnum=1, 
    		rownum=0, 
    })
    left.onClick = function(itemIndex/*项目索引*/,elemIndex/*元素索引*/,elemID/*元素id*/,elemName/*元素name*/,pageIndex/*当前页项目索引*/){
    		win.msgbox(itemIndex)
    		
    	}
    
    win.loopMessage();


  • amin 11天前
    0 8

  • 小小杨 7天前
    0 9
    非常感谢。过了一个多月,还能记得我这个小小的需求,不胜荣幸。非常感谢.这个技术难点还是挺多的,改天遇到问题再来请教。大佬辛苦了。
返回