python小程序怎么运行,python小程序开发教程

本文详细介绍了使用Python的tkinter库创建一个具有交互功能的小程序,包括导入库、生成窗口、加载图片、按钮设计以及定义点击响应函数。程序设计了一个关不掉的窗口,通过设置时间限制实现“喜欢”按钮关闭程序。
摘要由CSDN通过智能技术生成

本篇文章给大家谈谈python小程序怎么运行,以及python小程序开发教程,希望对各位有所帮助,不要忘了收藏本站喔。


前言

没想到那么多人关注阅读有趣系列之一飘落的银杏。看来大家更喜欢有趣的东西(学习这种东西没人看,哈哈哈哈)用Python画简单笑脸代码。那接着更有趣系列第二篇,如果看的人多的话还会继续更新这个系列,没人的话我就继续整理笔记吧 ~

一、关不掉的窗口

当你遇到某个喜欢妹子,不知道如何表达自己的好感时,可以给她发个小程序,让她选择是否喜欢你~把“不喜欢”这个按钮焊死,只有“喜欢”你才能关闭程序,强行达成共识,就可以抱得美人归了。
纯属虚构,请勿实验,被拉黑了不要找我
本篇主要是利用python中的tkinter库来实现。

二、代码部分

1.导入所需的库

import tkinter as tk
from PIL import ImageTk
from tkinter import messagebox
from tkinter import *
import time

之所以导入time,是为了防止你被女神直接拉黑。

2.生成主窗口

可以根据后面加载的图片选择窗口的大小,窗口的文字可以根据自己的想法更改。

root = tk.Tk()  #新建窗口
root.title('嘘~我喜欢你呀') #窗口名字
root.geometry('390x350+500+220')  #窗口,385x400是大小,第1个加号是距离屏幕左边的宽,第2个加号是距离屏幕顶部的高。
root.mainloop() #保持窗口

在这里插入图片描述

3.生成提问、加载图片

效果如下所示,文字和颜色我都随意选的,你们可以根据注释进行更改。图片也是我随意选取的一张图,你们可以自己选择图片,需要注意的是需要把图片放入程序所在文件夹,在程序中更改加载图片的名字就行。Tips:图片大小的更改需要配合2.2生成窗口的大小,否则图片会显示不完全。

l1 = tk.Label(root, text='问你一个问题呀', font=('微软雅黑', 14), fg='red' )#第一行第一句话,可以根据自己的需要调整字体大小和想写的话
l1.grid()
l2 = tk.Label(root, text='你喜欢我吗?', font=('微软雅黑', 25), fg='blue') #第二行第一句话,可以根据自己的需要调整字体大小和想写的话
l2.grid(row=1, column=1, sticky=tk.E)
bm = ImageTk.PhotoImage(file='./test.jpg')  ##加载图片,记得把图片放到程序运行的文件夹
l3 = tk.Label(root, image=bm)
l3.grid(row=2, columnspan=2)

在这里插入图片描述

4.生成按钮

这里生成的按钮是不带功能的,需要点击带功能的话,需要加入command,会在下一节中提到,所以如果在复制代码时记得别忘了在代码中加入command = 你命名的函数,例如:

b2 = tk.Button(root, text='不喜欢', width=4, height=1, command=nolove)  #加入“不喜欢”的按钮和点击的动作

Tips:可以把“不喜欢”的按钮设置的小一点。

b1 = tk.Button(root, text='喜欢', width=18, height=2) #加入“喜欢”的按钮和点击的动作
b1.grid(row=3, column=0, sticky=tk.W)
b2 = tk.Button(root, text='不喜欢', width=4, height=1)  #加入“不喜欢”的按钮和点击的动作
b2.grid(row=3, column=3, sticky=tk.E)

在这里插入图片描述

5.定义点击按钮时的响应函数

上一节只是生成了按钮,但不带点击响应功能,这一节我们定义一些响应函数,就可以做到交互了。
可以注意到我在 love()方法中加入了一个 if 判断,因为我把关闭的按键都写死了,窗口会一直关不掉,会越弹越多,只有通过任务管理器关闭,不会任务管理器的小姐姐就只能看着窗口越点越多,然后越想越气,把你拉黑。加入一个time库,再利用if判断,当窗口运行时间达到你设定的值时,点击喜欢即可关闭程序,单位是s,我这里设定的是60s后点击“喜欢”即可关闭程序。

def Love():   #定义点击“喜欢”时的动作
    love = Toplevel(root)
    love.geometry('300x150+240+200')
    love.title('好巧啊,我也是')
    label = Label(love, text='好巧,我也是', font=('楷体',15))
    label.pack()
    label1 = Label(love, text='留个电话可以吗', font=('楷体', 10))
    label1.pack()
    entry = Entry(love,font=('楷体', 15))
    entry.pack()
    btn = Button(love, text = '确定', width=10, height=2, command=Sure)
    btn.pack()
    love.protocol("WM_DELETE_WINDOW", closelove)
    if time.time() - start > 60:  #设定一个时间,超过多少秒以后,点击”喜欢“可关闭
        closeall()

def Sure():
    sure = Toplevel(root)
    sure.geometry('300x150+240+200')
    sure.title('我不信')
    label = Label(sure, text='除非你现在给我打电话', font=('楷体', 15))
    label.pack()
    label = Label(sure, text='5201314', font=('楷体', 15))
    label.pack()
    btn = Button(sure, text='好的', width=10, height=2, command=clicksure)
    btn.pack()
    sure.protocol("WM_DELETE_WINDOW", closelove)



def nolove():  #定义点击“不喜欢”时的动作
    no_love = Toplevel(root)
    no_love.geometry('300x100+250+200')
    no_love.title('你肯定是骗我的')
    label = Label(no_love, text='再考虑考虑呗', font=('楷体',25))
    label.pack()
    btn = Button(no_love, text='好的', width=10, height=2, command=no_love.destroy)
    btn.pack()
    no_love.protocol("WM_DELETE_WINDOW", closenolve)

def closeroot():  #定义点击关闭窗口的动作
   messagebox.showinfo(title='警告', message='不许关闭,好好回答')
   return

def closeall():  #定义关闭所有的方法
    root.destroy()

def closelove():  #定义点击关闭喜欢时的动作
    messagebox.showinfo('不再考虑一下嘛', message='再考虑一下吧')
    return

def closenolve():
    nolove()

def clicksure():  #定义点击确定打电话时的相应
    messagebox.showinfo('哼,你又骗我', message='我还没收到电话')
    return

6.主函数部分

再加入第5节的响应函数即可构成完整的程序。

if __name__ == '__main__':
    start = time.time()
    root = tk.Tk()  #新建窗口
    root.title('嘘~我喜欢你呀') #窗口名字
    root.geometry('390x350+500+220')  #窗口,385x400是大小,第1个加号是距离屏幕左边的宽,第2个加号是距离屏幕顶部的高。
    root.protocol("WM_DELETE_WINDOW", closeroot)  #使窗口无法关闭

    l1 = tk.Label(root, text='问你一个问题呀', font=('微软雅黑', 14), fg='red' )#第一行第一句话,可以根据自己的需要调整字体大小和想写的话
    l1.grid()
    l2 = tk.Label(root, text='你喜欢我吗?', font=('微软雅黑', 25), fg='blue') #第二行第一句话,可以根据自己的需要调整字体大小和想写的话
    l2.grid(row=1, column=1, sticky=tk.E)
    bm = ImageTk.PhotoImage(file='./test.jpg')  ##加载图片,记得把图片放到程序运行的文件夹
    l3 = tk.Label(root, image=bm)
    l3.grid(row=2, columnspan=2)
    b1 = tk.Button(root, text='喜欢', width=18, height=2, command=Love) #加入“喜欢”的按钮和点击的动作
    b1.grid(row=3, column=0, sticky=tk.W)
    b2 = tk.Button(root, text='不喜欢', width=4, height=1, command=nolove)  #加入“不喜欢”的按钮和点击的动作
    b2.grid(row=3, column=3, sticky=tk.E)

    root.mainloop()    #保持窗口

三、结果展示

运行程序后,点击不同按钮有不同响应,但无论如何交互都无法关掉程序,只能通过任务管理器或者等到了你设置的时间后,点击“喜欢”才能关闭程序。
学会了吗~赶紧写个程序打包发给你喜欢的妹子吧。Tips:拉黑了别找我(不会有人还不会打包成exe文件吧,不会吧不会吧,开个玩笑,不会的可以评论区留言)
在这里插入图片描述
以上,就是全部内容了,虽然简单,但是可以发挥的空间还有很多,比如可以再多定义几个互动动作,达到循环套外的效果,我这里只是简单的加了一些互动,大家可以发挥自己的想象力,继续多加点功能。

在这里插入图片描述

有一个需要特别提一下的就是,留个电话下面的文本框输入,后续没有再定义函数,并不能返回给我们,但其实我们可以再加入一部分实现对方输入号码点击确认后,将输入的内容发送到我们邮箱(前提对方联网了),如果需要的人多的话后续可以再 写一篇如何将输入内容发送到邮箱。

完整代码后续会上传到github。
已上传:GitHub - sw1122/interesting-PY-projects: these are some interesting python projects, simple but funny


系列之三预告:“颜值打分”

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值