可直接使用的压缩包在此免费下载: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’)后期不用改了.
迷茫了好久,浪费了太多时间,虽然还是不知道以后要做什么,但我不想再输了~~~~~~~~~~~~~~~~致自己
> 这里是引用.