帮室友写的表白程序 Python打包成exe文件

可直接使用的压缩包在此免费下载:https://download.csdn.net/download/qq_25714471/12127842
使用Python的库turtle画的玫瑰,使用tkinker做的GUI界面
turtle画玫瑰代码用的老哥的代码:https://blog.csdn.net/zaq0123/article/details/78573186
效果展示:
在这里插入图片描述
在这里插入图片描述
写代码时遇到一个问题,可能读者也会遇到,就是Tkinter中Toplevel插入图片无法显示的问题,解决方法就是在Topleve的窗口代码结尾段加上 dislike.mainloop() ,可以使图片不被销毁。
代码如下:

# python
# -*- coding: utf-8 -*-
# author:kun
from tkinter import *
from tkinter import messagebox
import turtle

def draw_rose():
    # 设置初始位置
    turtle.penup()
    turtle.left(90)
    turtle.fd(200)
    turtle.pendown()
    turtle.right(90)

    # 花蕊
    turtle.fillcolor("red")
    turtle.begin_fill()
    turtle.circle(10, 180)
    turtle.circle(25, 110)
    turtle.left(50)
    turtle.circle(60, 45)
    turtle.circle(20, 170)
    turtle.right(24)
    turtle.fd(30)
    turtle.left(10)
    turtle.circle(30, 110)
    turtle.fd(20)
    turtle.left(40)
    turtle.circle(90, 70)
    turtle.circle(30, 150)
    turtle.right(30)
    turtle.fd(15)
    turtle.circle(80, 90)
    turtle.left(15)
    turtle.fd(45)
    turtle.right(165)
    turtle.fd(20)
    turtle.left(155)
    turtle.circle(150, 80)
    turtle.left(50)
    turtle.circle(150, 90)
    turtle.end_fill()

    # 花瓣1
    turtle.left(150)
    turtle.circle(-90, 70)
    turtle.left(20)
    turtle.circle(75, 105)
    turtle.setheading(60)
    turtle.circle(80, 98)
    turtle.circle(-90, 40)

    # 花瓣2
    turtle.left(180)
    turtle.circle(90, 40)
    turtle.circle(-80, 98)
    turtle.setheading(-83)

    # 叶子1
    turtle.fd(30)
    turtle.left(90)
    turtle.fd(25)
    turtle.left(45)
    turtle.fillcolor("green")
    turtle.begin_fill()
    turtle.circle(-80, 90)
    turtle.right(90)
    turtle.circle(-80, 90)
    turtle.end_fill()

    turtle.right(135)
    turtle.fd(60)
    turtle.left(180)
    turtle.fd(85)
    turtle.left(90)
    turtle.fd(80)

    # 叶子2
    turtle.right(90)
    turtle.right(45)
    turtle.fillcolor("green")
    turtle.begin_fill()
    turtle.circle(80, 90)
    turtle.left(90)
    turtle.circle(80, 90)
    turtle.end_fill()

    turtle.left(135)
    turtle.fd(60)
    turtle.left(180)
    turtle.fd(60)
    turtle.right(90)
    turtle.circle(200, 60)


def close_window():
    # 弹框
    messagebox.showinfo(title='警告', message='不许关闭,请认真回答')
    # messagebox.showerror(title='警告', message='不许关闭,好好回答')
    return


def close_all_window():
    # 销毁窗口,结束程序
    root.destroy()


def chose_like():
    # 创建一个独立的顶级窗口
    draw_rose()
    like = Toplevel(root)
    # 根据自己电脑情况设置
    like.geometry('300x200+900+300')
    like.title('Miss You')

    label = Label(like, text='做我女朋友吧!',fg="pink",  font=('隶书', 30))
    label.pack()

    btn = Button(like, text='同意', bg="pink", font=('隶书', 35), width=4, heigh=2, command=close_all_window)
    btn.pack()

    like.protocol('WM_DELETE_WINDOW', close_like)


def close_like():
    # 弹框
    # messagebox.showinfo(title='小姐姐', message='不在考虑一下吗')
    messagebox.showerror(title='警告', message='不要害羞嘛')
    return # 如果返回为空窗口无法关闭


def chose_dislike():
    # 创建一个独立的顶级窗口
    dislike = Toplevel(bg="pink")
    # 根据自己电脑情况设置'+830+400'
    dislike.geometry('380x500+800+150')
    dislike.title('Love You')

    photo = PhotoImage(file='01.png')
    image_label = Label(dislike, image=photo)
    image_label.pack()

    btn = Button(dislike, text='你好狠心啊', bg="pink", fg="yellow", font=('隶书', 25), width=10, heigh=1, command=chose_dislike)
    btn.pack()
    dislike.mainloop()  # 必须加这句不然会销毁图


root = Tk()  # 实例化object,建立窗口window
root.title('Love')  # 给窗口的可视化起名字
root.geometry('400x750+100-50')  # 第3步,设定窗口的大小(长 * 宽)这里的乘是小x
# 固定窗口大小,禁止改变尺寸
root.resizable(width=False, height=False)

root.protocol('WM_DELETE_WINDOW', close_window)
#  放置图片
photo = PhotoImage(file='018.png')
image_label = Label(root, image=photo)
# 定位
image_label.grid(row=5, columnspan=1)
# 放Label
label = Label(root, text='你喜欢我吗?',fg="red", font=('华文行楷', 25))
label.grid(row=0, column=0, sticky=N)

# 放button
button1 = Button(root, text='不喜欢', fg="red", font=('微软雅黑', 10), width=6, heigh=1, command=chose_dislike)
button1.grid(row=6, column=0, sticky=W)
button2 = Button(root, text='喜  欢', fg="red", font=('微软雅黑', 30), width=6, heigh=1, command=chose_like)
button2.grid(row=6, column=0, sticky=E)


root.mainloop()

然后具体说一下打包exe文件的过程:
1,安装pyinstaller:pip install pyinstaller
2,(1), 将 .py .ico文件(exe的图标,可有可无)放到一个文件夹里。(我放到了桌面上)如下图:
在这里插入图片描述
(2), 命令框中操作:
a, 先进入到 cd Desktop\heart 进入到 .py文件的文件夹中
b, pyinstaller -F -w -i heart.ico heart.py (文件夹要根据自己的来)
c, 点击 enter
如图:
在这里插入图片描述
如下图显示接打包成功:
在这里插入图片描述
画红线的就是exe文件的保存位置。
3, 把exe文件,程序中所用到的图片,放到一个文件夹中即可。如下图:
在这里插入图片描述
双击exe文件即可直接打开.
补充: tkinker中的图片必须为.png格式,图标格式必须为.ico格式(可以去icon官网下载),
引用图片时,直接将图片复制到与py文件同一文件下如图:photo = PhotoImage(file=‘01.png’)后期不用改了.
在这里插入图片描述

迷茫了好久,浪费了太多时间,虽然还是不知道以后要做什么,但我不想再输了~~~~~~~~~~~~~~~~致自己
> 这里是引用.

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值