• Python GUI--Tkinter实践


    之前写了Testlink自动执行程序,现使用Tkinter加上GUI试试,想要实现如下图功能

    可以实现通过选择要执行的url及报告url自动执行用例,或可以直接写报告结果内容

    因项目原因,只列出部分代码功能

    from Tkinter import * 
    from SimpleDialog import *
    from tkFileDialog import askopenfilename
    
    root = Tk()
    root.title("TestLink自动执行")
    root.resizable(False, False)   #让窗口不可以缩放
    
    '''
    增加变量
    '''
    addvar=StringVar()   
    vv=StringVar()
    vv.set('已执行完的测试报告:')
    v=StringVar()
    
    '''
    增加label及text
    '''
    
    urladdress=Label(root,text='TestLink地址:')
    urladdress.grid(row=0,sticky=W)
    address=Entry(root,text='input you text here',textvariable = addvar)
    address.grid(row=0,column=1,sticky=E)
    
    user=Label(root,text='登陆用户名:')
    user.grid(row=1,sticky=W)
    
    usertext=Entry(root,text='input you user here')
    usertext.grid(row=1,column=1,sticky=E)
    
    Label(root,text='登陆密码:').grid(row=2,sticky=W)
    password=Entry(root,text='Input you passowrd here')
    password.grid(row=2,column=1,sticky=E)
    
    Label(root,text='测试项目关键字:').grid(row=3,sticky=W)
    testproject=Entry(root,text='Input you testprojectid here')
    testproject.grid(row=3,column=1,sticky=E)
    
    Label(root,text='测试计划关键字:').grid(row=4,sticky=W)
    testplan=Entry(root,text='Input you testplanid here')
    testplan.grid(row=4,column=1,sticky=E)
    
    planurl=StringVar()
    Label(root,text='需要执行的测试计划:').grid(row=5,sticky=W)
    testplanurl=Entry(root,text='Input you testplanurl here',textvariable = planurl)
    testplanurl.grid(row=5,column=1,sticky=E)
    
    
    choseplan=Button(root,text='选择')
    choseplan.grid(row=5,column=1,sticky=E)
    
    reporturl=StringVar()
    report=Label(root,textvariable=vv,text="已执行完的测试报告:")
    report.grid(row=6,sticky=W)
    reportentry=Entry(root,textvariable = reporturl)
    reportentry.grid(row=6,column=1,sticky=E)
    
    chosereport=Button(root,text='选择')
    chosereport.grid(row=6,column=1,sticky=E)   
    
    addvar.set('http://192.168.3.247:8080/testlink/login.php')
    
    def planopen(event):
    
        global filename
        filename=askopenfilename()
        if filename=="":
            filename=None
        else:
            root.title("xxxx"+os.path.basename(filename))
            pathdir=os.path.abspath(filename)
            if "http://" not in pathdir:
                pathdir="file:///"+pathdir
            planurl.set(pathdir)
    
    def reportopen(event):
        global filename
        filename=askopenfilename()
        try:
            if filename=="":
                filename=None
            else:
                root.title("xxxx"+os.path.basename(filename))
                pathdir=os.path.abspath(filename)
                if "http://" not in pathdir:
                    pathdir="file:///"+pathdir
                reporturl.set(pathdir)
                #return os.path.abspath(filename)
        except Exception,e:
            print e
    
    choseplan.bind("<Button-1>",planopen)
    chosereport.bind("<Button-1>",reportopen)
    
    
    start=Button(root,text='开始')
    stop=Button(root,text='停止')
    chose=Checkbutton(root,text='通过报告写结果',variable=v,command=callCheckbutton,onvalue="已执行完的测试报告:",offvalue="直接写结果:")
    #b2.bind("<Return>", cb2)  #建立事件与响应函数之间的关系,每当产生Return事件后,程序调用cb2
    
    
    start.grid(row=7)
    stop.grid(row=7,sticky=E)
    chose.grid(row=7,sticky=E,column=1)
    start.bind('<Button-1>', printc)
    stop.bind("<Button-1>",execut) 
    
    
    var = StringVar()
    lb2 = Listbox(root,  listvariable = var)
    
    s1=Scrollbar(root)
    lb2.grid(row=8,columnspan = 2,sticky=E+W)
    s1.grid(row=8,columnspan = 2,rowspan=5,sticky=N+E+S)
    
    lb2['yscrollcommand']=s1.set
    s1['command']=lb2.yview
    
    
    root.columnconfigure(0,minsize = 10)
    root.mainloop()
  • 相关阅读:
    .NET的堆和栈01,基本概念、值类型内存分配
    C#中List<T>是怎么存放元素的
    MVC为用户创建专属文件夹
    c#中何时使用Empty()和DefalutIfEmpty()
    MVC中使用AngularJS-01,基本
    MVC使用Dotnet.HighCharts做图表01,区域图表
    MVC使用Gantt Chart实现甘特图,管理事情进度
    Knockout官网实例在MVC下的实现-02,实现计次
    MVC实现多选下拉框,保存并显示多选项
    Knockout官网实例在MVC下的实现-01,实现Hello world
  • 原文地址:https://www.cnblogs.com/landhu/p/5033809.html
Copyright © 2020-2023  润新知