伪原创文章生成器软件【php源码】

news2024/11/18 7:28:18

这篇文章主要介绍了python怎么做gui界面,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

火车头采集ai伪原创插件截图:

@Author:Runsen

现在极少有人会用上tkinter了,所以真正研究的人也就更少了,本来不想更新tkinter。看到很多人在学tkinter,其实用Python做布局,没有人这么干。但还是更新几节tkinter,在Python从入门到大师教程中来。

tkinter

Tkinter包是Python附带的标准软件包,所以我们不需要安装任何东西就可以使用它。

窗口主体框架

每一个 tkinter 应用的主体框架都可以包含下面这部分. 定义 window 窗口 和 window的一些属性, 然后书写窗口内容, 最后执行window.mainloop让窗口活起来.

import tkinter as tk

window = tk.Tk()

window.title('my window')

window.geometry('200x100')

# 这里是窗口的内容

window.mainloop()

复制代码

2a4d6259024be6fcfcf6bfe099d7490c.png

窗口内容

这次我们会建立一个用来描述的标签 tk.Label, 比如:

import tkinter as tk

window = tk.Tk()

window.title('my window')

window.geometry('200x100')

l = tk.Label(window,

text='OMG! this is TK!', # 标签的文字

bg='green', # 背景颜色

font=('Arial', 12), # 字体和字体大小

width=15, height=2 # 标签长宽

)

l.pack() # 固定窗口位置

window.mainloop()

复制代码

876b2cb91b734ccc47b37af0bb715ced.png

控件

上面的Label就是一个控件,还有很多的,如按钮,标签和文本框等,如下图所示

4f398945b92ae24aaffb2f77b9033d54.png

控件自带的共同属性,如大小,字体和颜色等。可根据控件展现形式选择相应的属性,具体属性如下表:

7aa48f4e5eb7682a51b7521d5e60403e.png

tkinter绑定事件

tkinter绑定事件,就是定义一个函数,然后通过command属性传入函数名,下面通过Button绑定事件,点击就出现Runsen爱学习

from tkinter import *

def p_label():

global root

Lb = Label(root, text='Runsen爱学习')

Lb.pack()

root = Tk()

root.title("应用程序窗口")

B_n = Button(root, text='点我', command=p_label, bg='red') # command后面不能有任何的标点符号

B_n.pack()

root.mainloop()

复制代码

cb2db9df25ceb76a8341f1c49605bea3.png

布局显示

一个窗口都应该有布局,就是pack的时候需要设置side,expand需要扩展吗,fill需要填充吗

from tkinter import *

root = Tk()

root.title("应用程序窗口")

Button(root,text='1').pack(side=LEFT,expand=YES,fill=Y)

Button(root,text='2').pack(side=TOP,expand=YES,fill=BOTH)

Button(root,text='3').pack(side=RIGHT,expand=YES,fill=NONE)

Button(root,text='4').pack(side=LEFT,expand=NO,fill=Y)

Button(root,text='5').pack(side=TOP,expand=YES,fill=BOTH)

Button(root,text='6').pack(side=BOTTOM,expand=YES)

Button(root,text='7').pack(anchor=SE)

root.mainloop()

复制代码

ca33523f69e50b27a735d7271daecdd8.png

除了pack还有一个grid,grid将组件布局为表格

下面做一个电话拨号盘GUI

from tkinter import *

root = Tk()

labels = [['1','2','3'], # 文本,布局为网格

['4','5','6'],

['7','8','9'],

['*','0','#']]

for r in range(4): # 行循环

for c in range(3): # 列循环

label = Label(root,

relief=RAISED, # 设置边框格式

padx=10, # 加宽标签

text=labels[r][c]) # 标签文本

label.grid(row=r, column=c) # 将标签放置在r行c列

root.mainloop()

复制代码

67000fb7e1fdfc21b69fa2d7e1b9eb8e.png

制作一个日历

上面教你做一个电话拨号盘GUI,下面能做一个简单的日历吗?

我看你就不会,不是我瞧不起你

5096ba58a0d550725065b32a898e475b.png

放心,有我在。这需要导入calendar模块了,

6bbdf1a611f8d8706157e5956f3e81d5.png

import calendar

from tkinter import *

root = Tk()

labels = [['Mon','Tue','Wed','Thu','Fri','Sat','Sun']]

MonthCal = calendar.monthcalendar(2020, 5)

for i in range(len(MonthCal)):

labels.append(MonthCal[i])

for r in range(len(MonthCal)+1):

for c in range(7):

if labels[r][c] == 0:

labels[r][c] = ' '

label = Label(root,

padx=5,

pady=5,

text=str(labels[r][c]))

label.grid(row=r,column=c)

root.mainloop()

复制代码

eef1c9f90e0c5b22b23088f324c8794a.png

丰富我们的日历

上面的日历就是一个辣鸡,啥功能都没有,需求很简单,就是来两个按钮实现向上翻,向下翻。

向上翻,向下翻两个按钮就需要清空界面,再把日历加到labels列表中 ,放置日历。好像很简单,其实就是这么简单。

大家想一想,怎么做出来。我还是给标准实现代码

# @Author: Runsen

import calendar

from tkinter import *

root = Tk()

def LabelCal(Year, Month):

# 首行放置“年、月”的位置

label = Label(root,text=str(Year)+"年")

label.grid(row=0,column=2)

label = Label(root,text=str(Month)+"月")

label.grid(row=0,column=4)

# labels列表:放置“星期”的标题

labels = [['Mon','Tue','Wed','Thu','Fri','Sat','Sun']]

# 用calendar库计算日历

MonthCal = calendar.monthcalendar(Year, Month)

# 先把界面清空

for r in range(7):

for c in range(7):

label = Label(root,

width =5,

padx=5,

pady=5,

text=' ')

label.grid(row=r+1,column=c)

# 把日历加到labels列表中

for i in range(len(MonthCal)):

labels.append(MonthCal[i])

# 放置日历

for r in range(len(MonthCal)+1):

for c in range(7):

if labels[r][c] == 0:

labels[r][c] = ' '

label = Label(root,

width =5,

padx=5,

pady=5,

text=str(labels[r][c]))

label.grid(row=r+1,column=c) # 网格布局

# 默认日期

Year, Month = 2020,5

LabelCal(Year, Month)

# button:Enter

def ButtonPrevious():

global Year, Month

Month = Month-1

if Month<1:

Month = Month+12

Year = Year-1

LabelCal(Year, Month)

button1 = Button(root, text='Previous', command=ButtonPrevious)

button1.grid(row=len(MonthCal)+3, column=0)

# button:Clear

def ButtonNext():

global Year, Month

Month = Month+1

if Month>12:

Month = Month-12

Year = Year+1

LabelCal(Year, Month)

button2 = Button(root, text='Next', command=ButtonNext)

button2.grid(row=len(MonthCal)+3, column=6)

root.mainloop()

复制代码

运行一波,来一个最终实现gif效果图。

e4c945941257b110fd67deb62a3699cc.gif

本文已收录 GitHub,传送门~ ,里面更有大厂面试完整考点,欢迎 Star。

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

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

相关文章

Python入门【串行、并行与并发的区别、 进程、线程、协程的区别、线程是什么? 、协程是什么?、同步和异步介绍、线程Thread 、守护线程】(二十三)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

小红书运营 从入门到精通

大家好&#xff0c;我是网媒智星&#xff0c;今天跟大家分享一下小红书运营的经验&#xff0c;从入门到精通&#xff0c;一文读懂&#xff0c;全篇干货输出&#xff0c;非常实用。 一、注册账号 首先要说明一点&#xff0c;小红书与其他平台有所不同&#xff0c;因此具有特殊性…

mysql二进制方式升级8.0.34

一、概述 mysql8.0.33 存在如下高危漏洞&#xff0c;需要通过升级版本修复漏洞 Oracle MySQL Cluster 安全漏洞(CVE-2023-0361) mysql/8.0.33 Apache Skywalking <8.3 SQL注入漏洞 二、查看mysql版本及安装包信息 [rootlocalhost mysql]# mysql -V mysql Ver 8.0.33 fo…

做外贸受伤的并不总是你

外贸群里的小伙伴们经常吐槽&#xff1a; 小伙伴A 说&#xff1a;我前两天做一个PI&#xff0c;是新开发成功的一个客户。客户让我再次降价&#xff0c;我也同意了&#xff0c;刚刚客户反过来说&#xff0c;一再同意降价&#xff0c;是不是品质同时也变差了&#xff0c;应该怎…

ORACLE19.8 RAC搭建ADG-主备都在原主机上 静态监听

ORACLE19.8 RAC搭建ADG-主备都在原主机上配置关于PDB连接 标签&#xff1a; oracle19c 我们知道多租户环境下&#xff0c;pdb中建立的普通用户连接pdb需要通过tnsnames.ora或ezconnect的方式连接。而pdb的连接需要通过IP、端口和PDB服务名来连接&#xff0c;那么相同主机adg的…

轻辙视觉引擎以多种AI算法工具,助力纺织行业断线检测智能识别

近年来&#xff0c;人工智能技术在各行各业的应用愈发广泛&#xff0c;机器视觉作为人工智能的重要分支&#xff0c;成为当下的研究热点。机器视觉技术的发展&#xff0c;大幅提升了工业、农业、医疗等领域的效率和精度。尤其在工业领域&#xff0c;随着智能制造的进一步发展&a…

如何更改或伪装浏览器指纹?

跨境出海经常会出现被某些网站“禁止访问”的情况&#xff0c;为什么呢&#xff1f;其中一部分原因就是因为你的浏览器制备被网站和在线平台识别到&#xff0c;从而得出设备和网络详细信息&#xff0c;从而禁止你的访问。这种独特的配置文件称为“浏览器指纹”&#xff0c;使网…

艺术创作的新纪元:如何训练Lora模型打造令人惊叹的AI绘画

目录 前言一、&#x1f981; 选择合适的云端平台1-1、云端平台的优势1-2、选择适合的云端平台 二、&#x1f981; 账号注册三、&#x1f981; 开始炼丹3-1、购买算力并创建工作空间3-2、启动工作空间3-3、应用市场一键安装 四、&#x1f981; 使用Stable-Diffusion作图4-1、国风…

软考高项(八)项目整合管理 ★重点集萃★

&#x1f451; 个人主页 &#x1f451; &#xff1a;&#x1f61c;&#x1f61c;&#x1f61c;Fish_Vast&#x1f61c;&#x1f61c;&#x1f61c; &#x1f41d; 个人格言 &#x1f41d; &#xff1a;&#x1f9d0;&#x1f9d0;&#x1f9d0;说到做到&#xff0c;言出必行&am…

循环结构进阶

二重循环 import java.util.Scanner;public class Demo01 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 二重循环 外循环班级 内循环学生for (int i1; i<3; i) { // 外循环班级System.out.println("请输入第" i "…

WebDAV之π-Disk派盘+麻雀记

麻雀记是一款专注个人记录的优秀软件。正所谓麻雀虽小五脏俱全,麻雀记app亦是如此,虽然这款软件非常的小巧,但是它的功能却非常的丰富强大。全新的Focus页面功能,可以将你置顶的笔记整合在一个页面中,然后结合番茄钟功能来实现专注功能,提高你的专注力与效率。同时还提供…

原型设计工具大盘点:Figma VS 蓝湖 VS Axure VS 摹客

从事互联网行业以来&#xff0c;我在很多平台都可以看到这样的问题&#xff1a;原型设计工具推荐有哪些&#xff1f;产品经理有什么好用的原型设计工具&#xff1f; 的确&#xff0c;原型设计工具在产品设计领域扮演着至关重要的角色&#xff0c;一款高效简单的原型工具对于产…

基于低代码和数字孪生技术的电力运维平台设计

电力能源服务商在为用能企业提供线上服务的时候&#xff0c;不可避免要面对用能企业的各种个性化需求。如果这些需求和想法都要靠平台厂家研发人员来实现&#xff0c;那在周期、成本、效果上都将是无法满足服务运营需要的&#xff0c;这也是目前很多线上能源云平台应用效果不理…

仓储13代拣货标签操作指导

服务器使用 V1.4基站已经内置服务程序&#xff0c;无需搭建服务&#xff1b;可跳至第1.4部分 服务器搭建 安装mysql5.7, 创建db_wms数据库并导入原始数据库文件 安装jdk1.8, 配置java环境变量 下载tomca8.0, 部署wms.war到tomcat, 并启动tomcat 下载资源 Windows 64bit:…

汽车上的电源模式详解

① 一般根据钥匙孔开关的位置来确定整车用电类别&#xff0c;汽车上电源可以分为常电&#xff0c;IG电&#xff0c;ACC电 1&#xff09;常电。常电表示蓄电池和发电机输出直接供电&#xff0c;即使点火开关在OFF档时&#xff0c;也有电量供应。一般来讲模块的记忆电源及需要在车…

spss--因子分析案例介绍

这篇文章向大家介绍一个因子分析的实践操作案例。 这篇文章使用的数据集来自于一份问卷&#xff0c;数据集包括31个题目&#xff0c;178个观测&#xff08;因子分析对观测数有规定&#xff0c;一般要求观测的记录数为题目数量的5到10倍&#xff0c;至少5倍&#xff0c;此数据集…

微服务学习笔记-基本概念

微服务是一种经过良好架构设计的分布式架构方案。根据业务功能对系统做拆分&#xff0c;每个业务功能模块作为独立项目开发&#xff0c;称为一个服务。 微服务的架构特征&#xff1a; 单一职责&#xff1a;微服务拆分粒度更小&#xff0c;每一个服务都对应唯一的业务能力&…

回调函数和一般函数的区别

回调函数&#xff1a;不是我能控制的&#xff0c;通过外界信号触发调用&#xff0c;例如下面是chatter 一般函数&#xff1a;我能控制的&#xff0c;顺序调用

微信开发调试有哪些技巧?快解析开发调试方案

由于小程序的火爆,很多程序员自己学习微信小程序开发文档,下载微信开发者工具,试着开发小程序&#xff0c;但是开发过程中需要使用电脑进行一定的调试。调试在程序编程中是非常重要的&#xff0c;调试可以帮助我们解决很多技术性的问题&#xff0c;但是还有很多小伙伴们不知道如…

Kubernetes工作原理

一、案例概述 传统部署时代&#xff1a; 早期是在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界&#xff0c;这会导致资源分配出现问题。例如&#xff1a;如果在物理服务器上运行多个应用程序&#xff0c;则可能会出现一个应用程序占用大部分资源的情况…