gpt4 book ai didi

python - 有人知道功能测试 Python Tkinter 应用程序的一个很好的例子吗?

转载 作者:太空狗 更新时间:2023-10-30 01:39:15 26 4
gpt4 key购买 nike

我找到了一个讨论使用 IronPython 对 Python GUI 应用程序进行功能测试的很棒的网站:http://www.voidspace.org.uk/python/articles/testing/但我想使用 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 的应用程序:

from tkinter import *
from tkinter import ttk

root = Tk()
ttk.Button(root, text="Hello World").grid()
root.mainloop()

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

例子会很棒!

最佳答案

所以要清楚你想要一个工作的 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())

关于python - 有人知道功能测试 Python Tkinter 应用程序的一个很好的例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20228227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com