有人知道pythontkinter应用程序功能测试的好例子吗?

2024-05-29 03:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现了一个很好的网站,它讨论了使用IronPython:http://www.voidspace.org.uk/python/articles/testing/对Python GUI应用程序进行功能测试,但我想使用Tkinter,在库之间进行转换很困难。在

Michael为IronPython演示了以下示例:

class FunctionalTest(TestCase):

    def setUp(self):
        self.mainForm = None
        self._thread = Thread(ThreadStart(self.startMultiDoc))
        self._thread.SetApartmentState(ApartmentState.STA)
        self._thread.Start()
        while self.mainForm is None:
            Thread.CurrentThread.Join(100)

    def invokeOnGUIThread(self, function):
        return self.mainForm.Invoke(CallTarget0(function))

…我很难将其转换为如何将其挂接到具有基本设置的基于Tkinter的应用程序中:

^{pr2}$

…我想您也应该在第二个线程的主根对象上运行一个方法,但是我没有看到与主窗体.调用(). 也许我想错了。也许以这种方式对GUI应用程序进行功能测试并不常见?在

例子太棒了!在


Tags: selfnone应用程序http网站tkinterdefwww
1条回答
网友
1楼 · 发布于 2024-05-29 03:21:18

所以说清楚你想要一个有效的tkinter程序?如果你这么做,我很抱歉浪费你的时间,因为我错过了理解你的问题。这是我研究了一段时间的东西。它还没有完成。这是一个登录屏幕,最终将验证用户名和密码。在

import tkinter
def Mainscreen():
    def Validate():
         with open('Users.txt', 'w') as fout:
         fout.write("test")
    def Quit():
         window.destroy()
    def Sighnup():
        window2 = tkinter. Tk()
        def Quit2 ():
            window2.destroy()
        def Sighnup():
            with open('Users.txt', 'w') as fout:
                fout.write(ent.get())
                fout.write(ent2.get())
                fout.write(ent3.get())
                fout.write(ent4.get())
                fout.write(ent5.get())
            window2.destroy()
        window2.geometry("195x135")
        window2.title("Sighnup")
        window2.wm_iconbitmap('favicon.ico')
        lbl= tkinter.Label(window2, text="First Name:")
        lbl2= tkinter.Label(window2, text="Last Name:")
        lbl3= tkinter.Label(window2, text="Email:")
        lbl4=  tkinter.Label(window2, text="Username:")
        lbl5= tkinter.Label(window2, text="Password:")
        ent= tkinter.Entry(window2)
        ent2= tkinter.Entry(window2)
        ent3= tkinter.Entry(window2)
        ent4= tkinter.Entry(window2)
        ent5= tkinter.Entry(window2)
        btn= tkinter.Button(window2, text="Submit", command=Sighnup)  #command=Loginpostsighnup
        btn2= tkinter.Button(window2, text="Quit", command=Quit2)
        lbl.grid(row=0, column=0)
        ent.grid(row=0, column=1)
        lbl2.grid(row=1, column=0)
        ent2.grid(row=1, column=1)
        lbl3.grid(row=2, column=0)
        ent3.grid(row=2, column=1)
        lbl4.grid(row=3, column=0)
        ent4.grid(row=3, column=1)
        lbl5.grid(row=4, column=0)
        ent5.grid(row=4, column=1)
        btn2.grid(row=5, column=1)
        btn.grid(row=5, column=0)
        window2.mainloop()
    window = tkinter. Tk()
    window.geometry("195x135")
    window.title("Login")
    window.wm_iconbitmap('favicon.ico') 
    lbl6= tkinter.Label(window, text="Login:")
    lbl7= tkinter.Label(window, text="Username:")
    lbl8= tkinter.Label(window, text="Password:")
    ent6= tkinter.Entry(window)
    ent7= tkinter.Entry(window)
    btn3= tkinter.Button(window, text="Login")
    btn4= tkinter.Button(window, text="Sighn up", command=Sighnup)
    btn5= tkinter.Button(window, text="Quit", command=Quit)
    lbl6.grid(row=0, column=0)
    lbl7.grid(row=1, column=0)
    lbl8.grid(row=2, column=0)
    ent6.grid(row=1, column=1)
    ent7.grid(row=2, column=1)
    btn3.grid(row=3, column=1)
    btn4.grid(row=3, column=0)
    btn5.grid(row=4, column=0)
#main
(Mainscreen())

相关问题 更多 >

    热门问题