【浪漫情人节】送你Python表白神器,祝天下有情人终成眷属
创始人
2024-05-21 09:53:28
0

哈哈哈再过十几天就到了一年一度的情人节啦!如此浪漫的日子,小王决定用Python写一个简单的表白神器送给大家,祝天下有情人终成眷属! 

bae31f339824406ba3b29d1926d1030b.gif

目录

前言 

一、Turtle小海龟

1. 基本函数 

2. 漂浮爱心 

二、Tkinter界面设计 

1. 基本函数 

2. 表白界面

完整程序 


前言 

主要运用Python的内置包turtle和tkinter,都是Python3的内置包,如果你的Python版本中没有这两个包的话,需要先安装一下喔~

一、Turtle小海龟

因为我们需要用到turtle小海龟来实现漂浮的爱心,所以在这里我们简单介绍一下用到的函数叭~ 

1. 基本函数 

① 设置画板大小 

turtle.setup()

② 设置画布大小 

turtle.screensize()

③ 设置画布颜色

turtle.bgcolor()

④ 关于画笔

t=turtle.Pen()      #设置画笔为t
t.hideturtle()      #隐藏画笔(可简写成t.ht)
t.pensize()         #设置画笔大小
t.color()           #设置画笔颜色
t.penup()           #提笔
t.pendown()         #落笔
t.goto()            #设置画笔初始坐标
t.setheading()      #设置画笔初始方向
t.left()或t.lt()    #将画笔向左旋转
t.right()或t.rt()   #将画笔向右旋转 
t.forward()或t.fd() #画笔向前画
t.fillcolor()       #填充颜色
t.begin_fill()      #开始填充
t.end_fill()        #结束填充
t.circle()          #画圆

⑤ 隐藏/显示画画过程 

turtle.tracer(False)   #隐藏
turtle.tracer(True)    #显示

⑥ 不断刷新画布 

turtle.mainloop()

2. 漂浮爱心 

爱心类 

        def __init__(self):self.r = ra.randint(10,15)self.x = ra.randint(-1000,1000)self.y = ra.randint(-500,500)self.f = ra.uniform(-3.14,3.14)self.speed = ra.randint(5,10)self.color = ra.choice(colors)self.outline = 1 

爱心函数 

        def draw(self):t.pensize(self.outline)t.penup()t.color(self.color)t.goto(self.x, self.y)t.pendown()t.begin_fill()t.fillcolor('pink')t.setheading(120)t.circle(self.r, 195)t.fd(self.r * 2.4)t.lt(90)t.fd(self.r * 2.4)t.circle(self.r, 195)t.end_fill()

漂浮函数 

        def move(self):if self.y <= 500:self.y += self.speedself.x += self.speed * math.sin(self.f)self.f += 0.1else:self.r = ra.randint(10,15)self.x = ra.randint(-1000,1000)self.y = -500self.f = ra.uniform(-3.14,3.14)self.speed = ra.randint(5,10)self.color = ra.choice(colors)self.outline = 1 

二、Tkinter界面设计 

在简单了解了turtle小海龟后,我们就可以画漂浮的爱心啦,但是只有爱心的话就有点单调喽,我们可以使用Python的内置包tkinter设计一个简单的界面,来增强我们的神器哦~

1. 基本函数 

① 创建界面

root=tkinter.Tk()

② 设置界面标题

tkinter.title()

③ 隐藏界面的最小化以及缩放按钮 

root.wm_attributes("-toolwindow",1)

④ 设置界面的大小

root.geometry()

⑤ messagebox提示框 

tkinter.messagebox.showinfo()      #提示
tkinter.messagebox.showwarning()   #警告
tkinter.messagebox.showerror()     #错误
tkinter.messagebox.askyesno()      #判断

⑥ Button按钮 

tkinter.Button()

⑦ 绑定退出事件

root.protocol('WM_DELETE_WINDOW', closeWindow)    #closeWindow为自定义函数

⑧ 销毁界面

root.destroy()

2. 表白界面

同意按钮 

def OK():            #同意按钮root.destroy()Love()           #同意后显示漂浮爱心

拒绝按钮 

def NO():            #拒绝按钮,拒绝不会退出,必须同意才可以退出哦~tk.messagebox.showwarning('❤','再给你一次机会!') 

退出按钮 

def closeWindow():    #绑定退出按钮的事件,无法退出,必须同意哦~tk.messagebox.showwarning('❤','逃避是没有用的哦')

完整程序 

点击下载源码:Python情人节表白神器-Python文档类资源-CSDN下载

import tkinter as tk
import tkinter.messagebox
import turtle as tu
import random as ra
import math
def Love():
    tu.setup(1.0, 1.0)
    tu.screensize(1.0, 1.0)
    t = tu.Pen()
    t.ht()
    colors = ['pink']
    class Heart():
        def __init__(self):
            self.r = ra.randint(10,15)
            self.x = ra.randint(-1000,1000)
            self.y = ra.randint(-500,500)
            self.f = ra.uniform(-3.14,3.14)
            self.speed = ra.randint(5,10)
            self.color = ra.choice(colors)
            self.outline = 1
        def draw(self):
            t.pensize(self.outline)
            t.penup()
            t.color(self.color)
            t.goto(self.x, self.y)
            t.pendown()
            t.begin_fill()
            t.fillcolor('pink')
            t.setheading(120)
            t.circle(self.r, 195)
            t.fd(self.r * 2.4)
            t.lt(90)
            t.fd(self.r * 2.4)
            t.circle(self.r, 195)
            t.end_fill()
        def move(self):
            if self.y <= 500:
                self.y += self.speed
                self.x += self.speed * math.sin(self.f)
                self.f += 0.1
            else:
                self.r = ra.randint(10,15)
                self.x = ra.randint(-1000,1000)
                self.y = -500
                self.f = ra.uniform(-3.14,3.14)
                self.speed = ra.randint(5,10)
                self.color = ra.choice(colors)
                self.outline = 1
…… 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...