Python表白程序实现:GUI界面与交互逻辑详解

周叙
周叙
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍如何使用Python的Tkinter库制作一个交互式表白程序。通过创建GUI窗口、定义点击触发函数及弹窗逻辑,实现“喜欢”与“不喜欢”按钮的交互反馈。文章提供完整代码示例,包括窗口布局、事件绑定及消息提示功能,帮助开发者快速掌握Python GUI编程基础。

Python表白程序实现原理

使用Python编写表白程序的核心在于利用图形用户界面(GUI)库进行交互设计。

首先,需要构建一个基础的GUI窗口,作为程序运行的载体,并负责调用相关的界面组件与逻辑代码。

其次,编写点击触发函数,定义用户交互时的具体行为,例如弹出提示窗口或执行特定逻辑,从而实现完整的表白程序功能。

具体的实现代码参考如下示例。

核心代码示例:交互逻辑实现


from tkinter import *
from tkinter import messagebox
def closeWindow():
  messagebox.showinfo(title="警告",message="不许关闭,好好回答")
  # messagebox.showerror(title="警告",message="不许关闭,好好回答")
  return
# 点击喜欢触发的方法
def Love():
  # 顶级窗口
  love = Toplevel(window)
  love.geometry("300x100+520+260")
  love.title("好巧,我也是")
  label = Label(love,text = "好巧,我也是",font = ("微软雅黑",20))
  label.pack()
  btn = Button(love,text="确定",width=10,height=2,command=closeAllWindow)
  btn.pack()
  love.protocol("WM_DELETE_WINDOW",closeLove)
def closeLove():
  return
# 关闭所有的窗口
def closeAllWindow():
  # destroy 销毁
  window.destroy()
def noLove():
  no_love = Toplevel(window)
  no_love.geometry("300x100+520+260")
  no_love.title("再考虑考虑")
  label = Label(no_love,text="再考虑考虑呗",font=("微软雅黑",25))
  label.pack()
  btn = Button(no_love,text="好的",width=10,height=2,command=no_love.destroy)
  btn.pack()
  no_love.protocol("WM_DELETE_WINDOW",closeNoLove)
def closeNoLove():
  noLove()
# 创建父级窗口
window = Tk() #Tk 是一个类
# 窗口标题
window.title("你喜欢我吗?")
# 窗口大小
window.geometry('380x420')
# 窗口位置  geometry:几何
window.geometry('+500+240')
# protocol() 用户关闭窗口触发的事件
window.protocol("WM_DELETE_WINDOW",closeWindow)
# 标签控件
label = Label(window,text="hey,小姐姐",font=("微软雅黑",15),fg='red')
# 定位  网格式布局  pack也可以
label.grid(row = 0,column = 0,sticky = W)
label1 = Label(window,text="喜欢我吗?",font=("微软雅黑",30))
# sticky 对齐方式  E W S N 东西南北
label1.grid(row = 1,column = 1,sticky = E)
# 显示图片
photo = PhotoImage(file = "./cc.png")
imageLable = Label(window,image = photo)
# columnspan 组件所跨越的列数
imageLable.grid(row = 2, columnspan = 2)
# 按钮控件
# command 按钮点击触发的事件
btn = Button(window,text="喜欢",width=15,height=2,command=Love)
btn.grid(row = 3,column = 0, sticky = W)
btn1 = Button(window,text="不喜欢",command=noLove)
btn1.grid(row = 3,column = 1, sticky = E)
# 显示窗口,也叫消息循环
window.mainloop()

此外,还可以对程序进行扩展,例如打包为独立可执行文件以便分享。

扩展:程序打包与完整代码解析


复制# 打包操作
# 安装pyinstaller
# cmd输入 pip install pyinstaller
# shift+右击文件夹 点击在此处打开命令窗口
# pyinstaller -F -w love.py //打包程序

# 引用tkinter工具包
from tkinter import *  #__all__=[a,b]
#from tkinter import messagebox

# 定义关闭窗口提示
def closeWindow():
  messagebox.showinfo(title="警告",message ="滚回去,必须选一个")
  return

# 定义喜欢按钮的提示
def Love():
  love = Toplevel(window)
  love.geometry("300x100+250+260")
  love.title("我也喜欢你")
  label = Label(love, text = "我也喜欢你!",font = ("微软雅黑",20))
  label.pack()
  btn = Button(love,text = "好呀",width = 10,height = 2,command=closeallwindow)
  btn.pack()
  love.protocol("WM_DELETE_WINDOW", closelove)
def closelove():
  return

# 关闭所有窗口
def closeallwindow():
  window.destroy()

# 定义不喜欢按钮的提示
def noLove():
  no_love = Toplevel(window)
  no_love.geometry("300x100+520+260")
  no_love.title("重新选")
  label = Label(no_love,text="乖乖回去重新选!",font = ("微软雅黑",25))
  label.pack()
  btn = Button(no_love,text="好呀", width=10, height=2,command=no_love.destroy)
  btn.pack()
  no_love.protocol("WM_DELETE_WINDOW",closenolove)

# 窗口不能关
def closenolove():
  #messagebox.showinfo("放弃吧回去重选- -")
  #return
  noLove()

# 创建窗口
window = Tk()
# 窗口标题
window.title("喜欢我吗?")
# 窗口大小
window.geometry("380x420+500+240")
# love.title("哈哈")
btn=Button(text="确定")
# 窗口位置
# window.geometry("+500+240")
window.protocol("WM_DELETE_WINDOW",closeWindow )
#标签控件
label = Label(window,text = "hey,小姐姐",font = ("微软雅黑",15),fg = "red")
label.grid(row = 0, column = 0 )

label = Label(window,text = "喜欢我吗?",font = ("微软雅黑",30))
label.grid(row = 1, column = 1,sticky = E)

# 插入图片
photo = PhotoImage(file = "./123.png")
imageLable = Label(window,image = photo)
imageLable.grid(row = 2,columnspan = 2)

# 喜欢按钮插件
btn = Button(window,text="喜欢",width=15,height=2,command=Love)
btn.grid(row=3,column=0,sticky= W)

# 不喜欢按钮插件
btn = Button(window,text="不喜欢" ,command=noLove)
btn.grid(row=3,column=1,sticky= E)
# 显示窗口 消息循环
window.mainloop()

至此,关于如何使用Python编写表白程序的教程介绍完毕。如需了解更多相关Python编程技巧,建议查阅本站往期文章或继续浏览后续内容,感谢支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。