开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4534|回复: 1
收起左侧

[源码分享] python导入文件到列表框

[复制链接]
结帖率:93% (246/265)
发表于 2023-10-16 23:17:39 | 显示全部楼层 |阅读模式   广西壮族自治区崇左市

import tkinter as tk
from tkinter import ttk

def load_data():
filename = entry_filename.get()
data = []
with open(filename, 'r') as f:
for line in f:
items = line.strip().split('\t')
data.append(items)
return data

def on_button_click():
data = load_data()

tree.delete(*tree.get_children())
for i, row in enumerate(data, start=1):
    tree.insert("", "end", text=str(i), values=row)

创建主窗口

window = tk.Tk()

创建标签和输入框

label_filename = tk.Label(window, text="文件名:")
label_filename.grid(row=0, column=0)

entry_filename = tk.Entry(window)
entry_filename.grid(row=0, column=1)

创建按钮

button = tk.Button(window, text="加载", command=on_button_click)
button.grid(row=1, columnspan=2)

创建表格和滚动条

tree_frame = ttk.Frame(window)
tree_frame.grid(row=2, columnspan=2)

tree = ttk.Treeview(tree_frame, columns=('col1', 'col2', 'col3', 'col4', 'col5'), show='headings')
tree.column('col1', width=100, anchor='center')
tree.heading('col1', text='列1')
tree.column('col2', width=100, anchor='center')
tree.heading('col2', text='列2')
tree.column('col3', width=100, anchor='center')
tree.heading('col3', text='列3')
tree.column('col4', width=100, anchor='center')
tree.heading('col4', text='列4')
tree.column('col5', width=100, anchor='center')
tree.heading('col5', text='列5')

创建滚动条

vsb = ttk.Scrollbar(tree_frame, orient="vertical", command=tree.yview)
tree.configure(yscrollcommand=vsb.set)
vsb.pack(side="right", fill="y")

tree.pack(side="left", fill="both", expand=True)

设置数据列

data = []

创建下一页按钮

button_next = tk.Button(window, text="下一页", state='disabled')
button_next.grid(row=3, columnspan=2)

运行主循环

window.mainloop()



上面是python原生库
这是第二个源码,这个很垃圾,卡的要死,但是据说是很强大的库


import tkinter as tk
from tkinter import ttk
import pandas as pd
import chardet

def load_data():
filename = entry_filename.get()
with open(filename, 'rb') as f:
result = chardet.detect(f.read())
data = pd.read_csv(filename, sep='\t', encoding=result['encoding'])
return data.values.tolist()

def on_button_click():
data = load_data()

tree.delete(*tree.get_children())
for i, row in enumerate(data, start=1):
    tree.insert("", "end", text=str(i), values=row)

创建主窗口

window = tk.Tk()

创建标签和输入框

label_filename = tk.Label(window, text="文件名:")
label_filename.grid(row=0, column=0)

entry_filename = tk.Entry(window)
entry_filename.grid(row=0, column=1)

创建按钮

button = tk.Button(window, text="加载", command=on_button_click)
button.grid(row=1, columnspan=2)

创建表格和滚动条

tree_frame = ttk.Frame(window)
tree_frame.grid(row=2, columnspan=2)

tree = ttk.Treeview(tree_frame, columns=('col1', 'col2', 'col3', 'col4', 'col5'), show='headings')
tree.column('col1', width=100, anchor='center')
tree.heading('col1', text='列1')
tree.column('col2', width=100, anchor='center')
tree.heading('col2', text='列2')
tree.column('col3', width=100, anchor='center')
tree.heading('col3', text='列3')
tree.column('col4', width=100, anchor='center')
tree.heading('col4', text='列4')
tree.column('col5', width=100, anchor='center')
tree.heading('col5', text='列5')

创建滚动条

vsb = ttk.Scrollbar(tree_frame, orient="vertical", command=tree.yview)
tree.configure(yscrollcommand=vsb.set)
vsb.pack(side="right", fill="y")

tree.pack(side="left", fill="both", expand=True)

设置数据列

data = []

创建下一页按钮

button_next = tk.Button(window, text="下一页", state='disabled')
button_next.grid(row=3, columnspan=2)

运行主循环

window.mainloop()

发表于 2023-10-16 23:48:20 | 显示全部楼层   柬埔寨
创建下一页按钮
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表