[Ext扩展]两个来自Ext官方论坛的时间控件扩展,可选择时分秒

本文介绍了一款适用于Ext3.0及以上版本的日期时间选择控件,并提供了两种使用方法示例。一种用于显示时间,另一种用于显示完整的日期时间。控件已针对本地化进行了调整,包括替换图片资源、修改语言文字等。


 为方便大家使用,我把控件所需的js、css、gif文件都提取出来了,示例可以直接放到Ext根路径下用浏览器打开查看运行效果。这个组件适用于Ext3.0以后版本,2.0肯定跑不了的
第一个
使用方法示例:

Js代码 复制代码
  1. {   
  2. id:'time',   
  3. xtype:'datetimefield',   
  4. format:'H:i'  
  5. }  
{
id:'time',
xtype:'datetimefield',
format:'H:i'
}


示例截图:

第二个
使用方法示例:

Js代码 复制代码
  1. {   
  2. xtype: 'datefield',   
  3. fieldLabel: 'Normal (Ext.form.DateField)',   
  4. name: 'name',   
  5. value: '2009-03-04 11:23:45',   
  6. format: 'Y-m-d H:i:s'  
  7. }  
{
xtype: 'datefield',
fieldLabel: 'Normal (Ext.form.DateField)',
name: 'name',
value: '2009-03-04 11:23:45',
format: 'Y-m-d H:i:s'
}


示例截图:

说明:这个控件原本是基于Ext3.0RC版本做的,我稍作修改并且本地化了一下,具体包括以下几项:更换图片、修改弹出层英文头为汉字、修改了无法使用的旧函数、变换了JS文件编码,

class FileMergeApp(ttk.Frame): """文件合并统计分析界面""" def __init__(self, master): super().__init__(master) self.pack(fill=tk.BOTH, expand=True) # 创建标题 title_label = tk.Label( self, text="Excel文件合并统计分析", font=("黑体", 16, "bold"), fg="#2c3e50" ) title_label.pack(pady=20) # 创建说明标签 desc_label = tk.Label( self, text="此功能用于合并多个Excel文件并生成统计分析报告", font=("宋体", 12), fg="#7f8c8d" ) desc_label.pack(pady=10) # 创建功能容器 container = ttk.Frame(self) container.pack(fill=tk.BOTH, expand=True, padx=50, pady=20) container.columnconfigure(0, weight=1) container.rowconfigure((0, 1, 2, 3), weight=1) # 添加文件选择区域 file_frame = ttk.LabelFrame(container, text="选择Excel文件") file_frame.grid(row=0, column=0, sticky="ew", pady=10) self.file_listbox = tk.Listbox(file_frame, height=6) self.file_listbox.pack(fill=tk.BOTH, expand=True, padx=10, pady=5) btn_frame = ttk.Frame(file_frame) btn_frame.pack(fill=tk.X, padx=10, pady=5) add_btn = ttk.Button(btn_frame, text="添加文件", command=self.add_files) add_btn.pack(side=tk.LEFT, padx=5) remove_btn = ttk.Button(btn_frame, text="移除选中", command=self.remove_file) remove_btn.pack(side=tk.LEFT, padx=5) clear_btn = ttk.Button(btn_frame, text="清空列表", command=self.clear_files) clear_btn.pack(side=tk.RIGHT, padx=5) # 添加合并选项 options_frame = ttk.LabelFrame(container, text="合并选项") options_frame.grid(row=1, column=0, sticky="ew", pady=10) self.header_var = tk.BooleanVar(value=True) header_cb = ttk.Checkbutton( options_frame, text="包含标题行", variable=self.header_var ) header_cb.grid(row=0, column=0, padx=10, pady=5, sticky="w") self.merge_var = tk.StringVar(value="append") ttk.Radiobutton( options_frame, text="追加数据", variable=self.merge_var, value="append" ).grid(row=0, column=1, padx=10, pady=5, sticky="w") ttk.Radiobutton( options_frame, text="按列合并", variable=self.merge_var, value="columns" ).grid(row=0, column=2, padx=10, pady=5, sticky="w") # 添加统计选项 stats_frame = ttk.LabelFrame(container, text="统计分析") stats_frame.grid(row=2, column=0, sticky="ew", pady=10) self.stats_vars = { "summary": tk.BooleanVar(value=True), "count": tk.BooleanVar(value=True), "avg": tk.BooleanVar(value=True), "minmax": tk.BooleanVar(value=True) } ttk.Checkbutton( stats_frame, text="生成汇总统计", variable=self.stats_vars["summary"] ).grid(row=0, column=0, padx=10, pady=5, sticky="w") ttk.Checkbutton( stats_frame, text="计数统计", variable=self.stats_vars["count"] ).grid(row=0, column=1, padx=10, pady=5, sticky="w") ttk.Checkbutton( stats_frame, text="平均值计算", variable=self.stats_vars["avg"] ).grid(row=0, column=2, padx=10, pady=5, sticky="w") ttk.Checkbutton( stats_frame, text="极值分析", variable=self.stats_vars["minmax"] ).grid(row=0, column=3, padx=10, pady=5, sticky="w") # 添加执行按钮 execute_btn = ttk.Button( container, text="开始合并与分析", command=self.start_merge, style="Accent.TButton" ) execute_btn.grid(row=3, column=0, pady=20) # 配置样式 self.style = ttk.Style() self.style.configure("Accent.TButton", foreground="white", background="#3498db", font=("Arial", 10, "bold"), padding=6) def add_files(self): files = filedialog.askopenfilenames( filetypes=[("Excel文件", "*.xls *.xlsx")] ) for file in files: if file not in self.file_listbox.get(0, tk.END): self.file_listbox.insert(tk.END, file) def remove_file(self): selected = self.file_listbox.curselection() if selected: self.file_listbox.delete(selected[0]) def clear_files(self): self.file_listbox.delete(0, tk.END) def start_merge(self): if self.file_listbox.size() == 0: messagebox.showwarning("警告", "请至少添加一个Excel文件") return # 模拟处理过程 messagebox.showinfo("提示", "文件合并与分析功能正在开发中...") 功能界面:文件合并统计分析界面 (FileMergeApp) 文件列表:添加、移除和清空Excel文件 合并选项:指定列不合并:[]、工作页合并、区块合并、按列合并。指定列不合并:[]输入指定列A/B/C/D...数据不参与合并,工作页合并:将每个Excel文件工作页合并到同一个文件不同工作页中,区块合并:将每个Excel文件工作页当前数据行合并到同一个文件同一个工作页中,按列合并:合并列对应的合并单元格数据进行判断?若为数值则进行相加,若为字符串则先去重,不同字符串以'、'间隔并排合并在一个单元格 统计分析选项:汇总统计、计数统计 执行按钮:开始合并与分析。开始合并与分析:点击执行以上功能,另存生成一个(*.xls)和(*.xlsx)后缀的Excel文件新文件同时弹出一个文本浏览框,可手动选择该Excel新文件保存的路径位置和文件名。该文件生成后自动在其文件名后缀加上当前生成时间戳。
最新发布
07-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值