这是一个实现起来很有意思的模块,因为它能生成窗口,可以按钮点击,现在笔者来一步步做一个调皮的表白小程序。
from tkinter import *
from tkinter import messagebox
#创建窗口
window=Tk()
#这个是窗口的头部标题
window.title("喜欢就表白啊,不行就下药,坐牢都不敢你还说爱她")
#窗口生成的位置,这里是和屏幕左上角的x,y
window.geometry("400x320+540+250")
#窗口关闭
window.protocol('WM_DELETE_WINDOW',closeWindow)
#显示文本,设置字体和大小
lable1=Label(window,text="喜欢我吗?",font=('微软雅黑',20))
lable1.grid(row=0,column=1,sticky=W)
lable2=Label(window,text=' ',font=('微软雅黑',20))
lable2.grid(row=2,column=2)
lable3=Label(window,text=' ',font=('微软雅黑',20))
lable3.grid(row=2,column=3)
#插入图片
photo1=PhotoImage(file='E:/PyCharm/untitled1/photo1.png')
imgLable=Label(window,image=photo1)
imgLable.grid(row=1,columnspan=3,sticky=E)
#生成按钮
button1=Button(window,text='喜欢',width=15,height=2,command=islike)
#设置按钮位置
button1.grid (row=2,column=0,sticky=W)
button2=Button(window,text="不喜欢",width=5,height=1,command=nolike)
button2.grid(row=2,column=4,sticky=E)
#显示窗口 消息循环
window.mainloop()
emmmmmmm,俨然一副逗比效果呈现,然后比如美女看到了,直接叉掉,那后面的就展示不出来了,所以:
def closeWindow():
messagebox.showerror(title="警告",message="回答完再走啦")
做一个警告弹窗,当点击×的时候触发函数,窗口关闭已经在第一步就写好了,调用参照前文.
既然已经关不掉了,就要强迫美眉点喜欢,如果点不喜欢,重复弹窗让她重新考虑
def nolike():
#Toplevel是在window之上建立的独立顶级窗口
global posY
posY=posY + 5
noWindow=Toplevel(window)
noWindow.title('别骗自己了')
noWindow.geometry('300x100+580+'+str(posY))
no_lable=Label(noWindow,text='再考虑考虑',font=('微软雅黑',20))
#显示方式
no_lable.pack()
button1=Button(noWindow,text='好的',width=10,height=2,command=noWindow.destroy)
button1.pack()
# 点击关闭按钮调用函数
# noWindow.protocol('WM_DELETE_WINDOW',close_noLike)
noWindow.protocol('WM_DELETE_WINDOW', nolike)
调用在生成按钮的时候就写好了,这里把实现写出来,如上图,每次点击不喜欢都会生成这个,看效果图
这回女神得点喜欢了吧,可以自己设计文本和按键哦,这里放出个模板
def islike():
yesWindow=Toplevel(window)
yesWindow.title('开心')
yesWindow.geometry('300x100+580+290')
yes_lable=Label(yesWindow,text='在一起吧',font=('微软雅黑',20))
yes_lable.pack()
button1=Button(yesWindow,text='好的',width=10,height=2,command= window.destroy)
button1.pack()
#点击关闭按钮调用函数
yesWindow.protocol('WM_DELETE_WINDOW',close_like)
比如说弹出喜欢就和我在一起吧,同样不让她点×,让她点好的,这样一个小程序就做好了啦,下面贴出完整源码
from tkinter import *
#理论上*就是导入全部但是有时候并不是,所以这个地方需要导入messagebox
from tkinter import messagebox
def closeWindow():
messagebox.showerror(title="警告",message="回答完再走啦")
def close_like():
pass
posY=300
def nolike():
#Toplevel是在window之上建立的独立顶级窗口
global posY
posY=posY + 5
noWindow=Toplevel(window)
noWindow.title('别骗自己了')
noWindow.geometry('300x100+580+'+str(posY))
no_lable=Label(noWindow,text='再考虑考虑',font=('微软雅黑',20))
#显示方式
no_lable.pack()
button1=Button(noWindow,text='好的',width=10,height=2,command=noWindow.destroy)
button1.pack()
# 点击关闭按钮调用函数
# noWindow.protocol('WM_DELETE_WINDOW',close_noLike)
noWindow.protocol('WM_DELETE_WINDOW', nolike)
def islike():
yesWindow=Toplevel(window)
yesWindow.title('开心')
yesWindow.geometry('300x100+580+290')
yes_lable=Label(yesWindow,text='在一起吧',font=('微软雅黑',20))
yes_lable.pack()
button1=Button(yesWindow,text='好的',width=10,height=2,command= window.destroy)
button1.pack()
#点击关闭按钮调用函数
yesWindow.protocol('WM_DELETE_WINDOW',close_like)
#创建窗口
window=Tk()
window.title("喜欢就表白啊,不行就下药,坐牢都不敢你还说爱她")
window.geometry("400x320+540+250")
window.protocol('WM_DELETE_WINDOW',closeWindow)
lable1=Label(window,text="喜欢我吗?",font=('微软雅黑',20))
lable1.grid(row=0,column=1,sticky=W)
lable2=Label(window,text=' ',font=('微软雅黑',20))
lable2.grid(row=2,column=2)
lable3=Label(window,text=' ',font=('微软雅黑',20))
lable3.grid(row=2,column=3)
photo1=PhotoImage(file='E:/PyCharm/untitled1/photo1.png')
imgLable=Label(window,image=photo1)
imgLable.grid(row=1,columnspan=3,sticky=E)
button1=Button(window,text='喜欢',width=15,height=2,command=islike)
button1.grid (row=2,column=0,sticky=W)
button2=Button(window,text="不喜欢",width=5,height=1,command=nolike)
button2.grid(row=2,column=4,sticky=E)
#显示窗口 消息循环
window.mainloop()