4.9 KiB
Python Tkinter 示例:随机事实机器
原文:https://www.askpython.com/python-modules/tkinter/random-facts-machine
你好,初学者!今天我们将使用 Python Tkinter 构建一个 GUI 应用程序,随机事实机器。让我们开始吧!
我们指的是什么样的事实?
世界各地的随机事件。可以是字面上的任何东西,只要该陈述是真实的,并且基于实际发生的事件。
事实回答“在哪里”、“何时”、“为什么”和“如何”的问题。事实总是有证据支持的,这就是为什么事实总是真实的。
阅读事实显然也有助于增加一个人的词汇量、阅读能力和知识。它还可以帮助释放一个人的压力和焦虑。
构建随机事实机器
让我们进入使用 Python 中的 Tkinter 模块构建随机事实机器的步骤。
1.设计界面
应用程序的设计包括以下步骤:
- 创建窗口
- 正在导入 Tkinter 模块
- 创建自定义的空白窗口
- 将 resizable 属性设置为 False 以保持尺寸不变
- 添加基本元素
- 标签
- 获取事实按钮
- 用于显示事实的文本框
- 按钮退出应用程序
相同的代码如下所示。您可以根据自己的喜好自定义窗口。
import tkinter as tk
window = tk.Tk()
window.geometry("700x250")
window.config(bg="#E67E22")
window.resizable(width=False,height=False)
window.title('FACT MACHINE')
l1 = tk.Label(window,text="Welcome to the Fact Machine!",font=("Arial", 25),fg="Black",bg="White")
l2= tk.Label(window,text="Click on the 'Get new Fact!' button to get a fact!",font=("Arial", 15,"bold"),fg="darkgreen",bg="#E67E22")
btn1 = tk.Button(window,text="Get new Fact!",font=("Arial", 15))
btn2 = tk.Button(window,text="Exit application",font=("Arial", 15))
t1 = tk.Text(window,width=60,height=2,font=("Arial",15),state='disabled',bg="lightgreen")
l1.pack()
l2.pack()
btn1.pack()
t1.pack()
btn2.pack()
创建的最终设计如下所示。
Initial Screen Fact Machine
向按钮添加功能
按钮 1:退出按钮
要添加退出按钮功能,我们需要做的就是创建一个破坏窗口的exit函数。然后给按钮添加command属性,设置为退出功能。
相同的代码如下所示:
def exit():
window.destroy()
按钮 2:获取事实按钮
现在,为了获得每次点击的随机事实,我们使用 Python 中的 randfacts 模块。如果该模块不存在,那么在系统的命令提示符下运行 pip install randfacts 。
为了获得新的事实,我们使用了getFact函数,并为随机有趣的事实添加了参数 False !获得事实后,我们清除文本框,并将事实添加到文本框中。
在声明函数之后,command属性被添加到 get fact 按钮,并被设置为 get_fact 函数。相同的代码如下所示:
import randfacts
def get_fact():
t1.config(state='normal')
t1.delete('1.0', tk.END)
f = randfacts.getFact(False)
t1.insert(tk.END,f)
t1.config(state='disabled')
Tkinter 中随机事实机的完整代码
整个应用程序的最终代码如下所示:
import randfacts
def get_fact():
t1.config(state='normal')
t1.delete('1.0', tk.END)
f = randfacts.getFact(False)
t1.insert(tk.END,f)
t1.config(state='disabled')
def exit():
window.destroy()
import tkinter as tk
window = tk.Tk()
window.geometry("700x250")
window.config(bg="#E67E22")
window.resizable(width=False,height=False)
window.title('FACT MACHINE')
l1 = tk.Label(window,text="Welcome to the Fact Machine!",font=("Arial", 25),fg="Black",bg="White")
l2= tk.Label(window,text="Click on the 'Get new Fact!' button to get a fact!",font=("Arial", 15,"bold"),fg="darkgreen",bg="#E67E22")
btn1 = tk.Button(window,text="Get new Fact!",font=("Arial", 15),command=get_fact)
btn2 = tk.Button(window,text="Exit application",font=("Arial", 15),command=exit)
t1 = tk.Text(window,width=60,height=2,font=("Arial",15),state='disabled',bg="lightgreen")
l1.pack()
l2.pack()
btn1.pack()
t1.pack()
btn2.pack()
window.mainloop()
输出
正如您在下图中看到的那样,该应用程序运行良好:
Output1 Fact Machine
Output2 Fact Machine
结论
恭喜你!您已经成功地构建了自己事实机器。希望你喜欢它!快乐学习!
感谢您的阅读!


