Python国庆祝福

news2024/11/20 20:21:38

国庆祝福

系列文章

序号文章目录直达链接
1浪漫520表白代码https://want595.blog.csdn.net/article/details/130666881
2满屏表白代码https://want595.blog.csdn.net/article/details/129794518
3跳动的爱心https://want595.blog.csdn.net/article/details/129503123
4漂浮爱心https://want595.blog.csdn.net/article/details/128808630
5爱心光波https://want595.blog.csdn.net/article/details/132311588
6流星雨https://want595.blog.csdn.net/article/details/129395465
7满天星https://want595.blog.csdn.net/article/details/129572082
8烟花秀https://want595.blog.csdn.net/article/details/128746664
9圣诞树https://want595.blog.csdn.net/article/details/128213770
10雪花代码https://want595.blog.csdn.net/article/details/129038108
11模拟星空https://want595.blog.csdn.net/article/details/129948882
12生日蛋糕https://want595.blog.csdn.net/article/details/129694998
13樱花树https://want595.blog.csdn.net/article/details/130350743
14五彩气球https://want595.blog.csdn.net/article/details/130950744
15七彩花朵https://want595.blog.csdn.net/article/details/130897838
16恶搞代码https://want595.blog.csdn.net/article/details/131274862
17代码雨https://want595.blog.csdn.net/article/details/132574687
18浪漫星空https://want595.blog.csdn.net/article/details/132910075

文章目录

  • 系列文章
  • 前言
  • Tkinter入门
  • 国庆祝福
  • 尾声

前言

祝小伙伴们国庆节快乐!

Tkinter入门

Tkinter是Python自带的GUI库,用于创建桌面GUI应用程序。它是基于Tk GUI工具包开发的,可以用来创建GUI窗体、绘制图形界面、响应用户事件等。

接下来,我们将介绍如何使用Tkinter创建GUI应用程序。首先,我们需要导入Tkinter库:

import tkinter as tk

创建一个GUI应用程序的第一步是创建一个窗口对象。在Tkinter中,我们使用Tk类来创建一个顶级窗口对象:

root = tk.Tk()

该语句创建了一个名为root的顶级窗口对象。接下来,我们可以设置窗口对象的标题、大小、位置等属性:

root.title("My Application")
root.geometry("300x200")  # 窗口大小为300x200
root.resizable(False, False)  # 禁止用户调整窗口大小

以上代码设置了窗口的标题为“My Application”,大小为300x200,同时禁止用户调整窗口大小。接下来,我们需要启动窗口的事件循环,以便处理用户的输入事件:

root.mainloop()

该语句启动了窗口的事件循环,同时防止窗口对象被销毁。

  • 创建标签(Label)

在GUI应用程序中,标签(Label)是一种常用的控件,用于显示文字或图片等内容。在Tkinter中,我们使用Label类来创建标签控件。以下代码创建了一个包含“Hello, World!”文本的标签:

label = tk.Label(root, text="Hello, World!")
label.pack()

该代码创建了一个名为label的标签对象,父窗口为root,文本为“Hello, World!”。pack()方法将标签控件放置在父窗口上。

  • 创建按钮(Button)

按钮(Button)是另一种常用的控件,用于触发事件。在Tkinter中,我们使用Button类来创建按钮控件。以下代码创建了一个名为button的按钮对象,父窗口为root,文本为“Click Me!”:

def button_click():
    label.config(text="Button Clicked!")

button = tk.Button(root, text="Click Me!", command=button_click)
button.pack()

该代码创建了一个名为button的按钮对象,父窗口为root,文本为“Click Me!”。按钮控件的command参数指定了当按钮被点击时触发的函数。button_click()函数将标签控件的文本设置为“Button Clicked!”。

  • 创建输入框(Entry)

输入框(Entry)是一种常用的控件,用于接收用户输入的文本。在Tkinter中,我们使用Entry类来创建输入框控件。以下代码创建了一个名为entry的输入框对象,父窗口为root:

def entry_change(event):
    print(entry.get())

entry = tk.Entry(root)
entry.bind("<Return>", entry_change)  # 绑定回车键事件
entry.pack()

该代码创建了一个名为entry的输入框对象,父窗口为root。entry_change()函数将打印输入框控件中的文本。bind()方法将回车键事件与entry_change()函数绑定在一起,这样当用户按下回车键时,entry_change()函数将被调用。

  • 创建复选框(Checkbutton)

复选框(Checkbutton)是一种常用的控件,用于表示二元选择。在Tkinter中,我们使用Checkbutton类来创建复选框控件。以下代码创建了一个名为checkbox的复选框对象,父窗口为root:

def checkbox_click():
    if checkbox_var.get():
        label.config(text="Checkbox checked!")
    else:
        label.config(text="Checkbox unchecked!")

checkbox_var = tk.BooleanVar()
checkbox = tk.Checkbutton(root, text="Check me!", variable=checkbox_var, command=checkbox_click)
checkbox.pack()

该代码创建了一个名为checkbox的复选框对象,父窗口为root。Checkbutton控件的variable参数指定了该控件的状态,command参数指定了当复选框状态发生变化时触发的函数。checkbox_click()函数将标签控件的文本设置为“Checkbox checked!”或“Checkbox unchecked!”。

  • 创建单选框(Radiobutton)

单选框(Radiobutton)是一种常用的控件,用于表示多项选择。在Tkinter中,我们使用Radiobutton类来创建单选框控件。以下代码创建了一个名为radiobutton_var的单选框变量,以及两个名为radio1和radio2的单选框控件:

def radiobutton_click():
    if radiobutton_var.get() == 1:
        label.config(text="Radio 1 selected!")
    elif radiobutton_var.get() == 2:
        label.config(text="Radio 2 selected!")

radiobutton_var = tk.IntVar()

radio1 = tk.Radiobutton(root, text="Radio 1", variable=radiobutton_var, value=1, command=radiobutton_click)
radio1.pack()

radio2 = tk.Radiobutton(root, text="Radio 2", variable=radiobutton_var, value=2, command=radiobutton_click)
radio2.pack()

该代码创建了一个名为radiobutton_var的单选框变量,父窗口为root。两个Radiobutton控件的variable参数均指定为radiobutton_var,value参数分别为1和2,表示两个Radiobutton控件的选项值。command参数指定了当单选框状态发生变化时触发的函数。radiobutton_click()函数将标签控件的文本设置为“Radio 1 selected!”或“Radio 2 selected!”。

以上我们介绍了如何使用Tkinter创建GUI应用程序,并创建了标签、按钮、输入框、复选框和单选框等常见控件。这只是Tkinter的入门教程,还有很多高级用法和控件需要进一步学习。希望读者可以通过本文的介绍,进一步了解Tkinter的使用和应用。

国庆祝福

程序设计

import tkinter as tk
import random as ra
import threading as td
import time as ti

def Happy():
    root = tk.Tk()
    width = 200
    height = 50
    screenwidth = root.winfo_screenwidth()
    screenheight = root.winfo_screenheight()
    x = ra.randint(0, screenwidth)
    y = ra.randint(0, screenheight)
    root.title("⭐")
    root.geometry("%dx%d+%d+%d" % (width, height, x, y))
    tk.Label(root, text='国庆快乐!', fg='gold', bg='red', font=("Comic Sans MS", 20), width=30, height=5).pack()
    root.mainloop()


def Star():
    root = tk.Tk()
    screenwidth = root.winfo_screenwidth()
    screenheight = root.winfo_screenheight()
    root.geometry("%dx%d+%d+%d" % (screenwidth, screenheight, 0, 0))
    root.title("⭐")
    tk.Label(root, text="⭐", fg='yellow', bg='red', font=("Comic Sans MS", 500), width=300, height=0).pack()
    root.mainloop()


……(完整代码文末公众号免费领取哦)

程序分析

这段代码使用了Python的GUI库Tkinter,创建了一个国庆节主题的GUI效果。

首先定义了一个用于祝福的函数Happy(),该函数会弹出一个窗口,显示“国庆快乐!”的字样,同时窗口的位置和大小是随机的。这样就可以在屏幕上随机弹出多个祝福窗口,增加祝福的趣味性。

接着定义了一个用于背景的函数Star(),该函数会弹出一个全屏的窗口,窗口中央显示一个大星星,效果非常喜庆,符合国庆节的主题。为了实现全屏,代码使用了winfo_screenwidth()和winfo_screenheight()方法获取屏幕的分辨率,然后将窗口的大小设置为屏幕分辨率大小,实现了全屏显示的效果。

在主函数中,首先使用td.Thread创建了一个用于Star()函数的线程,并将该线程设置为守护线程。这样当主线程结束时,守护线程也会随之结束,从而实现了全屏星星的背景效果。接着使用循环创建了10个用于Happy()函数的线程,并将这些线程都设置为守护线程。循环中的ti.sleep(0.1)是为了让线程之间有一定的时间间隔,避免多个祝福窗口同时弹出造成视觉上的混乱。

总的来说,这段代码使用了Tkinter的控件和线程功能,实现了一个非常有趣的GUI效果。同时,通过这个例子也可以学到一些Tkinter的基本用法,例如创建窗口和控件、设置控件的属性等。

尾声

小伙伴们都放了几天假呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1109048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件开发线上维护方案

编写软件维护方案是确保软件系统长期稳定运行和满足不断变化需求的关键步骤。以下是编写软件维护方案的一般步骤和建议&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 文档概述&#xff1a; 开始文档…

Java (day 3)方法、数组、面向对象和异常

Java方法、数组、面向对象和异常 1.方法1.1 什么是方法&#xff1f;1.2 方法的定义1.3 方法的调用1.4 值传递和引用传递1.5 方法的重载1.6 命令行传参1.7 可变参数1.8 递归 2.数组2.1 数组概述2.2 数组声明创建2.3 三种初始化及内存分析和总结&#xff08;1&#xff09;java内存…

前端本地开发中,代理配置是如何解决跨域的?

文章目录 跨域&#xff08;Cross-Origin&#xff09;开发代理原理先说一下三个概念那代理到底是如何解决跨域的&#xff1f; 补充参考视频 跨域&#xff08;Cross-Origin&#xff09; 这里再说一下跨域的概念吧。 在Web开发中&#xff0c;浏览器限制了从一个不同来源&#xff…

【C++】415.字符串相加

题目描述&#xff1a; 给定两个字符串形式的非负整数 num1 和num2 &#xff0c;计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库&#xff08;比如 BigInteger&#xff09;&#xff0c;也不能直接将输入的字符串转换为整数形式。 示例1&#x…

XPS虽没流行,但还在使用!在Windows 10中打开XPS文件的最佳方法

当Windows Vista发布时&#xff0c;微软推出了XPS格式&#xff0c;这是PDF的替代品。XPS文件格式并不是什么新鲜事&#xff0c;但从未获得过多大的吸引力。 因此&#xff0c;XPS&#xff08;XML Paper Specification&#xff09;文件是微软对Adobe PDF文件的竞争对手。尽管XPS…

Kafka三种认证模式,Kafka 安全认证及权限控制详细配置与搭建

Kafka三种认证模式,Kafka 安全认证及权限控制详细配置与搭建。 Kafka三种认证模式 使用kerberos认证 bootstrap.servers=hadoop01.com:9092,hadoop02.com:9092,hadoop03.com:9092,hadoop04.com:9092 security.

分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>

微服务技术栈 一、微服务 介绍了解1 架构结构案例与 springboot 兼容关系拆分案例拆分服务拆分-服务远程调用 2 eureka注册中心Eureka-提供者与消费者Eureka-eureka原理分析Eureka-搭建eureka服务Eureka-服务注册Eureka-服务发现 3 Ribbon组件 负载均衡Ribbon-负载均衡原理Ribb…

深入探求:中国精益生产与管理实践的崭新视角

经过多方位的了解&#xff0c;比之制造行业上的精益管理上的表现情况&#xff0c;认为目前国内的精益生产精益管理实践仍处于自我认知的水平。目前很多的企业前进的步伐还是主要依据市场经济发展所衍生出来的较为先进的工具运用&#xff0c;其战略性的管理处于局部优化再而达到…

2.3 如何使用FlinkSQL读取写入到JDBC(MySQL)

1、JDBC SQL 连接器 FlinkSQL允许使用 JDBC连接器&#xff0c;向任意类型的关系型数据库读取或者写入数据 添加Maven依赖 <dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-jdbc</artifactId><version>3.1…

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程的集成方法与步骤(一)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 由于大家最自定义业务表单的整个集成方法还不熟悉&#xff0c;下面大概介绍一下这个流程与方法。 1、首先…

顿号在键盘上怎么打?教你4个输入方法!

“朋友们&#xff0c;我正在准备一篇期末论文&#xff0c;但是文章里的顿号我一直输入不了。顿号在键盘上应该怎么输入呀&#xff1f;谁能教教我呢&#xff1f;非常感谢&#xff01;” 在使用电脑编辑文档时&#xff0c;我们可能经常需要输入顿号。但有些朋友还不知道顿号在键盘…

Java 关键字:synchronized详解

synchronized详解 基本使用源码解析常见面试题好书推荐 基本使用 Java中的synchronized关键字用于在多线程环境下确保数据同步。它可以用来修饰方法和代码块 当一个线程访问一个对象的synchronized方法或代码块时&#xff0c;其他线程将无法访问该对象的其他synchronized方法或…

ppt录屏怎么导出来?学会这个,让分享更容易

ppt已经成为了日常工作与学习中必不可少的工具&#xff0c;而ppt屏幕录制功能&#xff0c;可以方便用户将他人的演讲或视频中的内容记录下来&#xff0c;以便进一步学习与研究。录制ppt演示并将其导出为视频文件&#xff0c;可以帮助我们进行分享&#xff0c;但是很多人不知道p…

el-upload实现上传文件夹

背景&#xff1a;如图一所示&#xff0c;最下面有一个黄色上传文件按钮&#xff0c;为手动上传而且上传区域有上传文件和上传文件夹的区分 所以需要在点击了上传文件夹做特殊处理使得el-upload可以上传文件夹 一、template区域 <el-uploadclass"upload-file"dra…

Prometheus metrics数据抓取解析

Prometheus node的监控数据如链接展示&#xff0c;我们希望能更加方便的看到监控数据&#xff0c;shodan对Prometheus metrics 的数据做了格式化处理。172.96.3.215:9100/metricshttp://172.96.3.215:9100/metrics 本文我自己实现了一个命令行工具&#xff0c;可以输出类shodan…

STR时,android发生了什么(一)

在QA的基线中&#xff0c;触发android进入STR流程的方式是向qvm注入power key 按下松开的操作(对于单android的基线&#xff0c;我的理解方式应该也是相同的&#xff0c;都是模拟了power key的按下松开操作&#xff09;。 这个按键操作会通过virtio上报到VHAL层&#xff08;下…

用CSS+SVG做一个优雅的环形进度条

开门见山 先上最终效果图&#xff1a;&#xff08;Demo 传送门&#xff09; 其中进度、尺寸、环宽和颜色都可以非常方便地进行控制。 核心原理&#xff1a; 利用两个重叠的圆环形&#xff0c;通过对上层圆环弧长的控制来表示进度&#xff0c;下层圆环则作为辅助&#xff0c;…

59 分割等和子集

分割等和子集 NP 完全问题&#xff08;01背包&#xff09;题解1 二维DP题解2 空间优化DP&#xff08;改为1D&#xff09; 给你一个只包含正整数的非空数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&a…

Ubuntu - 安装Java 11

在Ubuntu上安装Java 11的最简单方法是通过使用OpenJDK 11。以下是安装Java 11的步骤&#xff1a; 打开终端。 更新包列表&#xff0c;以确保获取最新的软件信息&#xff1a; sudo apt update 安装OpenJDK 11&#xff1a; sudo apt install openjdk-11-jdk 安装后&#xf…

独家原创,改进的智能优化算法

↖加关注这种话银家怎么好意思说出口嘛-- 声明&#xff1a;对于作者的原创代码&#xff0c;禁止转售倒卖&#xff0c;违者必究&#xff01; 以下代码均为作者独家原创&#xff0c;大家可以拿走去水水论文。 有一些质量较高的代码&#xff0c;可以发一些高质量的期刊&#xff0c…