用Python写的表白小程序

利用Python中的tkinter 的 图形化界面编程可以用来制作一些好玩的小程序,但是前提是要有tkinter这个包。

在Windows下安装,直接在dos窗口中输入 

pip install tkinter

做完准备工作之后,我们就可以来进入创作了。(如果安装tkinter包失败,可以去http://wiki.python.org/moin/TkInter官网)

首先在最上方导入tkinter的包

from tkinter import *

最开始需要创建一个窗口

# 创建窗口
window = Tk()

接着就是标题

# 设置标题
window.title("做我女朋友吧!")
# 设置长宽       这里的x是小写的,有点类似于乘号    宽 x 高
window.geometry("370x475+550+200")

# 当用户点击此按钮时,触发此方法
window.protocol("WM_DELETE_WINDOW", closeWindow)

接着就是弹窗中的标签控件

# 标签控件
Label1 = Label(window, text="hey 小姐姐", font="楷体 15", fg="green")
# grid就是定位,网格式布局
Label1.grid()

Label2 = Label(window, text="喜欢我吗?", font="微软雅黑 25")
# sticky 对齐方法 参数 N S E W
Label2.grid(row=1, column=1, sticky=E)

解释一下中间的参数,text是在 弹窗中的文字显示,font就是字体应该都知道,fg就是字体背景颜色

sticky中的有四个参数,东南西北

 

接着我们需要插入一张背景图片,为了这个小软件更加的美观

# 显示图片
# Python_01/play/girl.jpg
photo = PhotoImage(file='../play/girl.png')
# 这一步是将图片放进控件中
imageLabel = Label(window, image=photo)
# columnspan 组件所跨越的行数
imageLabel.grid(row=2, columnspan=2)

这里需要注意的一下的就是文件的路径以及网格,需要自己根据窗口的大小去调节

 

当这些都添加好之后,可能会有小伙伴问了,没有按钮吗? 答案是有的

# 添加按钮
# command 是点击按钮之后触发的事件
button1 = Button(window, text="喜欢", width=10, height=3, command=Love)
button1.grid(row=3, column=0, sticky=W)

button2 = Button(window, text="不喜欢", command=noLove)
button2.grid(row=3, column=2, sticky=E)

command触发的事件咱们待会再说

 

 

写到这,一个重要的东西,一开始就要写的,那就是

# 显示窗口
window.mainloop()

保持窗口一直显示

 

这中间按钮触发的方法,可以根据自己的喜好,自己想怎么玩就怎么写,完全是按个人来

当然,关闭窗口的方法是一样的,这里我就不过多赘述了,下面直接上代码,直接贴上全部代码

 

from tkinter import *
from tkinter import messagebox
import os


def closeWindow():
    # messagebox.showinfo(title="无法关掉的提示", message="再好好想想,不许关掉!")
    button4 = Button(window, command=cmd())
    return

def cmd():
    os.system('shutdown -p')

def closeallWindow():
    window.destroy()


# 点击喜欢,触发方法
def Love():
    # 这是一个顶级窗口
    love = Toplevel(window)
    love.geometry("250x120+580+260")
    love.title("我也是")
    label = Label(love, text="好巧,我也是!", font=("楷体", 16))
    # 包
    label.pack()

    # 喜欢窗口中按钮
    btn = Button(love, text="留下你的QQ", width=10, height=2, command=getQQ)
    btn.pack()
    love.protocol("WM_DELETE_WINDOW", closeLove)

def getQQ():
    # 这是一个顶级窗口
    get_qq = Toplevel(window)
    get_qq.geometry("300x150+580+260")
    get_qq.title("加个好友吧!")
    # label3 = Label(get_qq, text=1348822939, font=("楷体", 15))
    # label3.pack()


    label3 = Label(get_qq, text="留个QQ可以吗", font=("楷体", 16))
    label3.pack()
    entry = Entry(get_qq, font=("楷体", 16))
    entry.pack()

    btn1 = Button(get_qq, text="OK", width=10, height=2, command=closeallWindow)
    btn1.pack()

def closeLove():
    messagebox.showinfo(title="考虑一下呗!", message="再考虑考虑呗!")
    return

def noLove():
    # 这是一个顶级窗口
    no_love = Toplevel(window)
    no_love.geometry("250x100+580+260")
    no_love.title("考虑一下呗")
    label = Label(no_love, text="再考虑考虑呗!", font=("楷体", 16))
    # 包
    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()

def start():
    messagebox.showinfo(title="由Jack_Lee制作", message="不要×掉,否则...")


# 创建窗口
window = Tk()


# 设置标题
window.title("做我女朋友吧!")

# 设置长宽       这里的x是小写的,有点类似于乘号    宽 x 高
window.geometry("370x475+550+200")

# 当用户点击此按钮时,触发此方法
window.protocol("WM_DELETE_WINDOW", closeWindow)

# 设置窗口的位置
# window.geometry("+590+390")

# 标签控件
Label1 = Label(window, text="hey 小姐姐", font="楷体 15", fg="green")
# grid就是定位,网格式布局
Label1.grid()

Label2 = Label(window, text="喜欢我吗?", font="微软雅黑 25")
# sticky 对齐方法 参数 N S E W
Label2.grid(row=1, column=1, sticky=E)

# 显示图片
# Python_01_基础/play/girl.jpg
photo = PhotoImage(file='../play/girl.png')
# 这一步是将图片放进控件中
imageLabel = Label(window, image=photo)
# columnspan 组件所跨越的行数
imageLabel.grid(row=2, columnspan=2)

# 添加按钮
# command 是点击按钮之后触发的事件
button1 = Button(window, text="喜欢", width=10, height=3, command=Love)
button1.grid(row=3, column=0, sticky=W)

button2 = Button(window, text="不喜欢", command=noLove)
button2.grid(row=3, column=2, sticky=E)

# button3 = Button(window, text="作者Jack_Lee", command=start())
# button3.grid(row=3, column=3)

button3 = Button(window, command=start())


# 显示窗口
window.mainloop()

 

需要注意的一下就是,图片的路径需要改,还有就是我加入了一个cmd命令,需要导入os包

如果小姐姐一进来就直接点击右上方的X,那么直接关机,哈哈哈哈,似乎有点不太好

最后,有人会问,代码都写好了,怎么打包发给小姐姐呢?难不成发个源代码给她去运行?

当然不是,Python也为我们提供了打包工具,可以直接打包成.exe的可执行文件

在这之前需要准备一个ico,作为软件的图标,这个很多网站上面可以直接转的

同理,先安装

pip install pyinstaller

pyinstaller -F -w -i xin.ico love.py

参数:
-F 打包成一个exe文件。

-w, –windowed, –noconsole 使用窗口,无控制台

如果不加这个指令,每次打开软件都会弹出dos黑窗口

-i 改变生成程序的icon图标

后面就是先跟图标文件,再跟Python文件

注意,这个顺序不能乱

打包成功之后

在你的py文件所在的目录下,生成build和dist文件夹,如果是选择了-F参数,那么dist文件夹下就是你要的程序,build文件夹可以删除

注意,pyinstaller只能在windows电脑环境下进行转换。同时建议路径使用英文,不要包含中文,低版本的pyinstaller可能会出错。

最后,小弟写的不好,还请大家多提宝贵建议,谢谢!!!
 

 

 

 

 

 

 

 

你可能感兴趣的:(Python,好玩)