SFile
SFile can help users present file selectors GUI
example
#![allow(unused)] fn main() { import {SFile} from "../../index.slint"; import { Themes,PaddingType,UseIcons,FileItem} from "../../use/index.slint"; export component TestFile inherits Window { height: 400px; width: 800px; SFile{ theme: Dark; width: 86%; height: 40%; item-font-size: 14px; tabs: [ {label:"名称",value:"name"}, {label:"时间",value:"dateTime"}, {label:"文件类型",value:"file-type"}, {label:"大小",value:"size"} ]; files : [ {icon:UseIcons.icons.Folder-filled , name : "font" , datetime : "2023-11-06" , file-type : "folder" , size : "900KB"}, {icon:UseIcons.icons.FileCode , name : "index.slint" , datetime : "2023-11-06" , file-type : "SLINT file" , size : "3KB"}, {icon:UseIcons.icons.FileCode , name : "LICENSE" , datetime : "2023-11-06" , file-type : "file" , size : "2KB"}, {icon:UseIcons.icons.FileCode , name : "LICENSE" , datetime : "2023-11-06" , file-type : "file" , size : "2KB"}, {icon:UseIcons.icons.FileCode , name : "LICENSE" , datetime : "2023-11-06" , file-type : "file" , size : "2KB"} ]; tab-clicked(index,item)=>{ debug(index); debug(item); } item-clicked(index,cindex,item)=>{ debug(index); debug(cindex); debug(item); } } } }
properties
- in property
text-alignment : file item horizontal alignment - in property <[SOption]> tabs : file tabs
- in-out property <[length]> column-width : file item column width
- in-out property <[FileItem]> files : file item font files
- in-out property
item-font-family : file item font family - in-out property
item-font-weight : file item font weight - in-out property
item-font-size: file item font size - in-out property
item-font-italic : file item font italic - in-out property
item-padding-type: file item padding type
functions
- pure function get-column-width(w:length,index:int)->length : get file item column width
callbacks
- callback tab-clicked(int,SOption) : run if you click the tab
- callback item-clicked(int,int,FileItem) : run if you click a file item