程序人生
Tkinter简单示例
作者:邵波涛    时间:2016-12-14 浏览量:151

Tkinter是python自带程序库,使用起来比较方便,但表达语言和布局较不便,且很多复杂功能都需要自己实现,因此程序简单时可以尝试,本次仍以加法计算器简单实现来示例用法。

因为布局代码比较麻烦,笔者也不擅长,幸好找到神器TKinterDesigner,可以使用VB来完成界面,然后生成执行代码或界面代码,因为ui一般与代码分离,因此一般只用它来生成界面代码。

首先下载VB6,然后下载TKinterDesigner插件,安装后使用VB设计界面,然后使用TKinterDesigner生成界面代码

保存界面代码为l2.py备用,使用时需补足一些导入类。

代码如下:

from tkinter import *
from tkinter.font import Font
from tkinter.ttk import *
from tkinter.messagebox import *  
class Calc_ui(Frame):
    #这个类仅实现界面生成功能,具体事件处理代码在子类Application中。
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.master.title('计算加法')
        self.master.geometry('304x202')
        self.createWidgets()

    def createWidgets(self):
        self.top = self.winfo_toplevel()

        self.style = Style()

        self.Text1Var = StringVar(value='')
        self.Text1 = Entry(self.top, textvariable=self.Text1Var, font=('宋体',9))
        self.Text1.place(relx=0.105, rely=0.198, relwidth=0.293, relheight=0.124)

        self.Text2Var = StringVar(value='')
        self.Text2 = Entry(self.top, textvariable=self.Text2Var, font=('宋体',9))
        self.Text2.place(relx=0.605, rely=0.198, relwidth=0.293, relheight=0.124)

        self.style.configure('TLabel1.TLabel', anchor='w', font=('宋体',9))
        self.Label1 = Label(self.top, style='TLabel1.TLabel')
        self.Label1.place(relx=0.263, rely=0.515, relwidth=0.398, relheight=0.124)

        self.style.configure('TCommand1.TButton', font=('宋体',9))
        self.Command1 = Button(self.top, text='计算', command=self.Command1_Cmd, style='TCommand1.TButton')
        self.Command1.place(relx=0.263, rely=0.792, relwidth=0.424, relheight=0.124)

下面使用并导入界面类来完成功能实现:

代码如下:

from tkinter import *   
from l2 import Calc_ui
class Calc(Calc_ui):
    def __init__(self, master=None):
        Calc_ui.__init__(self, master)
    def Command1_Cmd(self, event=None):
        #TODO, Please finish the function here!
        self.Label1.config(text=int(self.Text1.get())+int(self.Text2.get()))   
if __name__ == "__main__":
    top = Tk()
    Calc(top).mainloop()

执行如下:

发言请留称呼=>
本文留言
共有 0 条留言
扫一扫,手机浏览网站
友情链接
申请链接