|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 sahinzheng 于 2018-1-6 23:53 编辑
- #导入tkinter模块
- import tkinter
- tk = tkinter.Tk()
- #设置窗口标题
- tk.title("煤工业分析计算器")
- #设置窗口大小
- tk.geometry("540x220")
- #添加标签
- labelMad = tkinter.Label(tk,text="Mad")
- labelMad.place(x=10,y=10,width=50,height=25)
- labelAad = tkinter.Label(tk,text="Aad")
- labelAad.place(x=65,y=10,width=50,height=25)
- labelVad = tkinter.Label(tk,text="Vad")
- labelVad.place(x=120,y=10,width=50,height=25)
- labelFC = tkinter.Label(tk,text="FC")
- labelFC.place(x=175,y=10,width=50,height=25)
- labelQent_ad = tkinter.Label(tk,text="Qent.ad")
- labelQent_ad.place(x=230,y=10,width=50,height=25)
- labelAd = tkinter.Label(tk,text="Ad")
- labelAd.place(x=285,y=10,width=50,height=25)
- labelAd = tkinter.Label(tk,text="Ad")
- labelAd.place(x=285,y=10,width=50,height=25)
- labelVadf = tkinter.Label(tk,text="Vadf")
- labelVadf.place(x=340,y=10,width=50,height=25)
- labelVadf1 = tkinter.Label(tk,text="Vadf校")
- labelVadf1.place(x=400,y=10,width=50,height=25)
- labelAd1 = tkinter.Label(tk,text="Ad")
- labelAd1.place(x=460,y=10,width=50,height=25)
- labelVadf10 = tkinter.Label(tk,text="<10%")
- labelVadf10.place(x=460,y=35,width=50,height=25)
- labelVadf15 = tkinter.Label(tk,text="10-15%")
- labelVadf15.place(x=460,y=65,width=50,height=25)
- labelVadf20 = tkinter.Label(tk,text="15-20%")
- labelVadf20.place(x=460,y=95,width=50,height=25)
- labelVadf25 = tkinter.Label(tk,text="20-25%")
- labelVadf25.place(x=460,y=125,width=50,height=25)
- labelVadf30 = tkinter.Label(tk,text="25-30%")
- labelVadf30.place(x=460,y=155,width=50,height=25)
- labelVadf40 = tkinter.Label(tk,text="30-40%")
- labelVadf40.place(x=460,y=185,width=50,height=25)
- #添加文本框
- entryMad=tkinter.Entry(tk,text ="")
- entryMad.place(x=10,y=35,width=50,height=25)
- entryAad=tkinter.Entry(tk,text ="")
- entryAad.place(x=65,y=35,width=50,height=25)
- entryVad=tkinter.Entry(tk,text ="")
- entryVad.place(x=120,y=35,width=50,height=25)
- entryFC=tkinter.Entry(tk,text ="")
- entryFC.place(x=175,y=35,width=50,height=25)
- entryQent_ad=tkinter.Entry(tk,text ="")
- entryQent_ad.place(x=230,y=35,width=50,height=25)
- entryAd=tkinter.Entry(tk,text ="")
- entryAd.place(x=285,y=35,width=50,height=25)
- entryVadf=tkinter.Entry(tk,text ="")
- entryVadf.place(x=340,y=35,width=50,height=25)
- entryVadf10=tkinter.Entry(tk,text ="")
- entryVadf10.place(x=400,y=35,width=50,height=25)
- entryVadf15=tkinter.Entry(tk,text ="")
- entryVadf15.place(x=400,y=65,width=50,height=25)
- entryVadf20=tkinter.Entry(tk,text ="")
- entryVadf20.place(x=400,y=95,width=50,height=25)
- entryVadf25=tkinter.Entry(tk,text ="")
- entryVadf25.place(x=400,y=125,width=50,height=25)
- entryVadf30=tkinter.Entry(tk,text ="")
- entryVadf30.place(x=400,y=155,width=50,height=25)
- entryVadf40=tkinter.Entry(tk,text ="")
- entryVadf40.place(x=400,y=185,width=50,height=25)
- #添加按钮
- btn=tkinter.Button(tk,text="计算结果",font = 'Helvetica -80 bold')
- #(font = 'Helvetica -350 bold')用来控制字体大小
- btn.place(x=10,y=65,width=380,height=145)
复制代码
请教各位大神
1、有没有什么方法能使代码行数减少
2、要怎么实现按下按钮后各个方框里面输入的数字执行计算
本帖最后由 坏小子 于 2018-1-21 23:36 编辑
所用python版本:2.7.10
这是减少代码行数的方法,把常用的相似的语句封装成函数,这个还能再进一步封装
- def addLabelOnX(wg,x,text):
- labelMad = tkinter.Label(wg,text=text)
- labelMad.place(x=x,y=10,width=50,height=25)
- addLabelOnX(wg,10,'Mad')
- addLabelOnX(wg,65,'Aad')
- addLabelOnX(wg,120,'Vad')
- ...
复制代码
至于按钮的用法,可参考下面这个程序
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals,division
- from Tkinter import *
- def calculate(*args):
- try:
- value = float(feet.get())
- meters.set((0.3048 * value * 10000.0 + 0.5)/10000.0)
- except ValueError:
- meters.set('')
-
- root = Tk()
- root.title("Feet to Meters")
- mainframe = Frame(root)
- mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
- mainframe.columnconfigure(0, weight=1)
- mainframe.rowconfigure(0, weight=1)
- feet = StringVar()
- meters = StringVar()
- feet_entry = Entry(mainframe, width=7, textvariable=feet)
- feet_entry.grid(column=2, row=1, sticky=(W, E))
- Label(mainframe, textvariable=meters).grid(column=2, row=2, sticky=(W, E))
- Button(mainframe, text="Calculate", command=calculate).grid(column=3, row=3, sticky=W)
- Label(mainframe, text="feet").grid(column=3, row=1, sticky=W)
- Label(mainframe, text="is equivalent to").grid(column=1, row=2, sticky=E)
- Label(mainframe, text="meters").grid(column=3, row=2, sticky=W)
- for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
- feet_entry.focus()
- root.bind('<Return>', calculate)
- root.mainloop()
复制代码
|
|