鱼C论坛

 找回密码
 立即注册
查看: 1122|回复: 1

python的tkinter页面分离

[复制链接]
发表于 2022-3-17 08:45:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import tkinter as tk
from tkinter import scrolledtext
from tkinter import ttk
import math
win =tk.Tk()
# 设置主窗口
win.title("CIELAB")
win.geometry('1068x681+100+50')
def count():
    Lstd=float(entry1.get())
    astd=float(entry2.get())
    bstd=float(entry3.get())
    fetched_content = [list(map(float, i.split())) for i in scr1.get('1.0', 'end-1c').splitlines()]
    fetched_content = list(map(list, zip(*fetched_content)))
    Lsp = fetched_content[0]
    asp = fetched_content[1]
    bsp = fetched_content[2]
    if cbox.get() == 'CIELAB':
        CIELAB(Lstd,astd,bstd,Lsp,asp,bsp)
    elif cbox.get() == 'CMC':
        CMC(Lstd,astd,bstd,Lsp,asp,bsp)
    elif cbox.get() == 'CIE94':
        CIE94(Lstd,astd,bstd,Lsp,asp,bsp)
    elif cbox.get() == 'CIE2000':
        CIE2000(Lstd,astd,bstd,Lsp,asp,bsp)
def CIELAB(Lstd,astd,bstd,Lsp,asp,bsp):
    e = 0
    while e < len(Lsp):
        DL = Lsp[e]-Lstd
        Csp = (asp[e]**2+bsp[e]**2)**(1/2)
        Cstd = (astd**2 + bstd**2)**(1/2)
        DCs=Csp-Cstd  
        Da=asp[e]-astd
        Db=bsp[e]-bstd
        DCc=(Da**2+Db**2)**(1/2)
        DH=(DCc**2-DCs**2)**(1/2)
        DE=(DL**2+DCs**2+DH**2)**(1/2)
        scr2.insert('end', DE)
        scr2.insert(tk.INSERT, '\n')
        e=e+1
def CMC(Lstd,astd,bstd,Lsp,asp,bsp):
    e = 0
    while e < len(Lsp):
        DL = Lsp[e] - Lstd
        Csp = (asp[e] ** 2 + bsp[e] ** 2) ** (1 / 2)
        Cstd = (astd ** 2 + bstd ** 2) ** (1 / 2)
        DCs = Csp - Cstd
        Da = asp[e] - astd
        Db = bsp[e] - bstd
        DCc = (Da ** 2 + Db ** 2) ** (1 / 2)
        DH = (DCc ** 2 - DCs ** 2) ** (1 / 2)
        hstd=math.atan(bstd/astd)
        if hstd>=164 and hstd<345:
            t=0.56+abs(0.2*math.cos(hstd+168))
        else:
            t=0.36+abs(0.4*math.cos(hstd+35))
        if Lstd<16:
            SL=0.511
        else:
            SL=(0.040975*Lstd)/(1+0.01765*Lstd)
        SC=0.0638*Cstd/(1+0.0131*Cstd)+0.638
        f=(Cstd**4/(Cstd**4+1900))**(1/2)
        SH=SC*(t*f+1-f)
        DE = ((DL/2*SL)**2 + (DCs/SC)**2 + (DH/SH)**2)** (1/2)
        scr2.insert('end', '{:.4f}'.format(DE))
        scr2.insert(tk.INSERT, '\n')
        e = e + 1
def CIE94(Lstd,astd,bstd,Lsp,asp,bsp):
    print('CIE94()')
def CIE2000(Lstd,astd,bstd,Lsp,asp,bsp):
    print('CIE2000()')
label1=tk.Label(win,text="标样",width=10,font=("隶书", 18)).place(x=160,y=30)
label2=tk.Label(win,text="试样",width=10,font=("隶书", 18)).place(x=580,y=30)
label3=tk.Label(win,text="L*\ta*\tb*").place(x=150,y=60)
label4=tk.Label(win,text="L*\ta*\tb*").place(x=600,y=60)
entry1=tk.Entry(win)
entry1.place(x=130,y=80,width=50)
entry2=tk.Entry(win)
entry2.place(x=190,y=80,width=50)
entry3=tk.Entry(win)
entry3.place(x=250,y=80,width=50)
scr1 = scrolledtext.ScrolledText(win, width=25, height=7)
scr1.place(x=550,y=80)
label3=tk.Label(win,text="色差值",width=10, font=("隶书", 18)).place(x=400,y=200)
scr2 = scrolledtext.ScrolledText(win, width=25, height=7)
scr2.place(x=370,y=230)
cbox=ttk.Combobox(win)
cbox.place(x=250,y=400)
cbox['value'] = ('CIELAB','CMC','CIE94','CIE2000')
cbox.bind("<<ComboboxSelected>>")
b = tk.Button(win, text="计算",width=5,height=1,bg="pink",command=count).place(x=450,y=400)
win.mainloop()

这个怎么把页面设计代码与上面的方法放在不同的.py文件中,然后在不同的py文件中调用,因为上面还有方法没有弄完,内容太多了,想要分开
希望大佬给点建议
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-17 13:45:25 | 显示全部楼层
:o:time::'(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 18:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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