界面:

import tkinter as tk
import time
import sysimport ttkbootstrap
from tkinter import Frame, ttk, scrolledtext, Button, VERTICAL, NS, NSEW, END, Labelclass RunMain(object):def __init__(self):passdef interface_main(self):self.window = ttkbootstrap.Window(themename="litera")# 设置标题self.window.title('实验界面')# 窗口的位置和大小sw = self.window.winfo_screenwidth()# 得到屏幕宽度sh = self.window.winfo_screenheight()# 得到屏幕高度ww = 800wh = 600# 窗口宽高为500x = (sw-ww) / 2y = (sh-wh) / 2self.window.geometry("%dx%d+%d+%d" % (ww, wh, x, y))# 设置窗口是否可以变化长宽,默认可变self.window.resizable(width=False, height=False)self.window.iconbitmap("logo.ico")"""基本布局"""lable1_line = Label(self.window, text='-' * 66, font=('微软雅黑', 20), fg='black', bg='#C0D9D9')lable1_line.place(x=0, y=40)lable1_title = Label(self.window, text='实验界面', font=('微软雅黑', 30), fg='black', bg='#C0D9D9')lable1_title.place(x=320, y=0)lable1_edition = Label(self.window, text='版本号v1.0', font=('微软雅黑', 10), fg='black', bg='#C0D9D9')lable1_edition.place(x=720, y=30)# 设置窗口是否可以变化长宽,默认可变self.window.resizable(width=False, height=False)frame = Frame(self.window)# 创建表格self.tree_date = ttk.Treeview(frame,  show='tree headings', height=17)frame.place(x=10, y=100, width=580)# 设置x轴和y轴的滚动条ybar = ttk.Scrollbar(frame, orient=VERTICAL)ybar.pack(side='right', fill='y')xbar = ttk.Scrollbar(frame, orient=tk.HORIZONTAL)xbar.pack(side='bottom', fill='x')self.tree_date.configure(yscrollcommand=ybar.set, xscrollcommand=xbar.set)# 定义列self.tree_date["columns"] = ["name", "age", "weight", "number", "hang", "X"]self.tree_date.pack()# 使用command参数来绑定treevievwybar.config(command=self.tree_date.yview)xbar.config(command=self.tree_date.xview)# 设置列宽度self.tree_date.column("#0", width=90, anchor="center")self.tree_date.column("name", width=70, anchor="center")self.tree_date.column("age", width=70, anchor="center")self.tree_date.column("weight", width=70, anchor="center")self.tree_date.column("number", width=70, anchor="center")self.tree_date.column("hang", width=70, anchor="center")self.tree_date.column("X", width=160, anchor="center")# 添加列名self.tree_date.heading("#0", text="循环名")self.tree_date.heading("name", text="姓名")self.tree_date.heading("age", text="年龄")self.tree_date.heading("weight", text="体重")self.tree_date.heading("number", text="状态")self.tree_date.heading("hang", text="行")self.tree_date.heading("X", text="完成时间")# # 添加列名# self.tree_date.heading("#0", text="制式")# for j in date_columns:#     self.tree_date.heading(j, text=j)"""进度条"""self.jin_du = ttkbootstrap.Meter(master=self.window,bootstyle="success",subtextstyle="warning",metertype="full",  # 将仪表显示为一个完整的圆形或半圆形(semi)# wedgesize=5, #设置弧周围的指示器楔形长度,如果大于 0,则此楔形设置为以当前仪表值为中心的指示器amounttotal=100,  # 仪表的最大值,默认100amountused=100,  # 仪表的当前值metersize=180,  # 仪表大小showtext=True,  # 指示是否在仪表上显示左、中、右文本标签interactive=False,  # 是否可以手动调节数字的大小textleft='进度:',  # 插入到中心文本左侧的短字符串textright='%',textfont="-size 20",  # 中间数字大小# subtext="  ",subtextfont="-size 20",  # 文本大小)self.jin_du.place(x=600, y=250)"""下方说明框"""self.scr_explain = scrolledtext.ScrolledText(self.window, font=('微软雅黑', 15), width=63, height=5)self.scr_explain.place(x=10, y=440)self.run_button = Button(self.window, text="开始运行", font=('微软雅黑', 20))self.run_button.place(x=620, y=100)self.exit_button = Button(self.window, text="退出界面", font=('微软雅黑', 20))self.exit_button.place(x=620, y=180)

处理函数:

import time
import sys
import threadingfrom tkinter import END, messageboxfrom configure import RunMaintest_item_num = 0class MyThread(threading.Thread):def __init__(self, func, *args):super().__init__()self.func = funcself.args = argsself.setDaemon(True)self.start()  # 在这⾥开始def run(self):self.func(*self.args)class DataHandle(RunMain):def __init__(self):super().__init__()# 计算所有的测试项的总数def test_number(self):all_number = 18return all_number# 进度条参数显示def step_number(self):global test_item_numall_number = self.test_number()# print(all_number)number = (1 / all_number) * 100test_item_num = test_item_num + numberself.jin_du.configure(amountused=int(test_item_num))# 输出到下方提示框def out_put(self, output: str):self.scr_explain.insert(END, "{}\n".format(output))self.scr_explain.yview_moveto(1)def tool_exit(self):confirmation_information = messagebox.askquestion('确认操作', '确定退出工具?')if confirmation_information == "no":self.out_put("退出操作已取消!")returnsys.exit()# 清空表格def delButton(self, tree):x = tree.get_children()for item in x:tree.delete(item)def run_main(self):# 清空表格和下方提示框self.scr_explain.delete(0.0, END)self.delButton(self.tree_date)# 进度条清空global test_item_numtest_item_num = 0self.jin_du.configure(amountused=0)# 进度条显示变蓝self.jin_du.configure(bootstyle="info")self.scr_explain.delete(0.0, END)self.delButton(self.tree_date)# 建立起制式表头sf1 = self.tree_date.insert('', END, text='第一个循环', open=True)complete_time = time.strftime("%Y.%m.%d %H:%M:%S", time.localtime())for num in range(1, 10):# 显示进度条self.step_number()time.sleep(0.1)self.out_put("表格加载第{}次!".format(num))data = ["张三", "18", "70kg", "ok", num, complete_time]# 直接在已有数据后填充idd = self.tree_date.insert(sf1, END, values=tuple(data))self.tree_date.see(idd)self.tree_date.update()num += 1# 建立起制式表头sf2 = self.tree_date.insert('', END, text='第二个循环', open=True)for num in range(1, 10):# 显示进度条self.step_number()time.sleep(0.1)self.out_put("表格加载第{}次!".format(num))data = ["李四", "18", "70kg", "ok", num, complete_time]# 直接在已有数据后填充idd = self.tree_date.insert(sf2, END, values=tuple(data))self.tree_date.see(idd)self.tree_date.update()num += 1# 进度条test_item_num = 0self.jin_du.configure(bootstyle="success", amountused=100)self.out_put("程序运行完成!")def set_command(self):self.exit_button.configure(command=self.tool_exit)self.run_button.configure(command=lambda: MyThread(self.run_main))# 用x键,防止文件未创建self.window.protocol("WM_DELETE_WINDOW", self.tool_exit)def main(self):self.interface_main()self.set_command()self.window.mainloop()if __name__ == '__main__':data_handle = DataHandle()data_handle.main()

最后效果图·:

点击按键《开始运行》就可以看到运行的效果了。

Python使用Treeview制作表格(二)相关推荐

  1. Python使用Treeview制作表格

    本文需要以下的库文件,读者可以按照下方的方法进行安装: """ 需安装的库文件: pip install ttkbootstrap换源网址: - 豆瓣:http://py ...

  2. python tkinter treeview制作,Python tkinter之Treeview(表格)

    1.Treeview的基本属性 # -*- encoding=utf-8 -*- import tkinter from tkinter import * from tkinter import tt ...

  3. Python+tkinter+Treeview模拟表格并设置字体和颜色

    清华大学出版社-第10届高等学校计算机程序设计课程论坛 中国大学MOOC"Python程序设计基础"免费学习地址 2020年秋季学期Python教材推荐与选用参考 推荐图书: &l ...

  4. python tkinter treeview制作_python-3.x – Tkinter Treeview标题样式

    我想更改树视图标题的背景颜色.我已经确定了Treeview.Heading布局的元素选项,负责这个:Treeheading.cell.问题是这个设置不适用于'vista'主题(由于我假设的绘图问题). ...

  5. python一行代码制作简易二维码

    运行环境 : python 3.6.0 此项目来源于 GitHub ...... GitHub 项目源 : https://github.com/sylnsfar/qrcode 安装方式 : pip ...

  6. python在vsc制作动态二维码_用VScode愉快的写python代码

    前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...

  7. 用python如何制作表格步骤_Python中用xlwt制作表格实例讲解

    在Python中,我们也可以用xlwt来制作excel表格,是不是很神奇,接下来一起学习吧. 举例: ```python import xlwt wb = xlwt.Workbook(encoding ...

  8. 用python如何制作表格_Python中如何用xlwt制作表格

    在Python中,我们也可以用xlwt来制作excel表格,是不是很神奇,接下来一起学习吧. 举例: import xlwt wb = xlwt.Workbook(encoding = 'ascii' ...

  9. 如何用python制作动态二维码,提升表白成功率?

    来源:凹凸数据 本文约1000字,建议阅读5分钟. 本文教你用python制作动态二维码,助你表白成功! 关注数据派THU(DatapiTHU)后台回复"20200520"获取完整 ...

最新文章

  1. WinForm 曲线图控件
  2. matlab模块 python,Matlab 和Python结合使用
  3. 在国外读phd 的时候和supervisor沟通的时候需要注意的点
  4. ActiveMQ群集,持久订阅者和虚拟主题可助您一臂之力
  5. linux 串口总线,linux中的serio(虚拟串行输入输出)总线
  6. easyui datebox 设置只读
  7. SAP 系统License查看申请及导入
  8. Edge使用Flash
  9. 原生android 操作系统,为什么氢OS被称为最接近原生安卓的操作系统?
  10. 本周最新文献速递20220227
  11. 火山PC自绘高级表格及超级列表框
  12. PYTHON 编写程序实现以下功能:计算beg到end之间的所有水仙花数并输出。如果beg到end之间不存在水仙花数,则输出“not found”。
  13. 中国家电闯入国外运营费成本比中国高
  14. k8s学习笔记——ceph rbd本地手动挂载
  15. LogStash 7.x com.mysql.cj.jdbc.Driver not loaded的解决方法
  16. 收集的css动画效果
  17. 求两个文件的交集、并集和差集 sort和uniq
  18. SSL/TLS 双向认证
  19. 芯片制造的辉煌已成过去,芯片产能过剩导致代工价格已暴跌两成
  20. Matlab编程和其他语言的区别

热门文章

  1. 阿里云服务器Ubuntu16.04配置图形界面并远程桌面连接
  2. push()、pop()、shift()、unshift()方法简单整理
  3. Nature计算社会科学特刊:如何对21世纪人类社会进行有意义的度量?
  4. 飞鸟如何去爱,才能爱上水里的鱼?
  5. 综合布线中的配线架与理线架
  6. 青提WiFi微信小程序安装教程常见错误解析
  7. php图床_PHP利用百度当图床
  8. 手把手教你做时间序列图
  9. 关于NetBios的简单应用
  10. 人工智能在游戏领域的应用有哪些?