快捷搜索:  汽车  科技

tkinter制作表格(用tkinter制作一个日历)

tkinter制作表格(用tkinter制作一个日历)tkinter绑定事件,就是定义一个函数,然后通过command属性传入函数名,下面通过Button绑定事件,点击就出现Runsen爱学习控件自带的共同属性,如大小,字体和颜色等。可根据控件展现形式选择相应的属性,具体属性如下表:每一个 tkinter 应用的主体框架都可以包含下面这部分. 定义 window 窗口 和 window的一些属性 然后书写窗口内容 最后执行window.mainloop让窗口活起来.import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x100') # 这里是窗口的内容 window.mainloop() 窗口内容这次我们会建立一个用来描述的标签 tk.Label 比如: import tkinter a

@Author : By Runsen

Python环境搭建(一)

现在极少有人会用上tkinter了,所以真正研究的人也就更少了,还是学下tkinter吧,其实这个东西真他妈简单。

tkinter 是内置的模块,无需安装

窗口主体框架

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

import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x100') # 这里是窗口的内容 window.mainloop()

tkinter制作表格(用tkinter制作一个日历)(1)

窗口内容

这次我们会建立一个用来描述的标签 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()

tkinter制作表格(用tkinter制作一个日历)(2)

控件

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

tkinter制作表格(用tkinter制作一个日历)(3)

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

tkinter制作表格(用tkinter制作一个日历)(4)

tkinter绑定事件

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

fromtkinterimport* defp_label(): globalroot 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()

tkinter制作表格(用tkinter制作一个日历)(5)

布局显示

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

fromtkinterimport* 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()

tkinter制作表格(用tkinter制作一个日历)(6)

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

下面做一个电话拨号盘GUI

fromtkinterimport* root=Tk() labels=[['1' '2' '3'] #文本,布局为网格 ['4' '5' '6'] ['7' '8' '9'] ['*' '0' '#']] forrinrange(4):#行循环 forcinrange(3):#列循环 label=Label(root relief=RAISED #设置边框格式 padx=10 #加宽标签 text=labels[r][c])#标签文本 label.grid(row=r column=c)#将标签放置在r行c列 root.mainloop()

tkinter制作表格(用tkinter制作一个日历)(7)

制作一个日历

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

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

tkinter制作表格(用tkinter制作一个日历)(8)

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

tkinter制作表格(用tkinter制作一个日历)(9)

importcalendar fromtkinterimport* root=Tk() labels=[['Mon' 'Tue' 'Wed' 'Thu' 'Fri' 'Sat' 'Sun']] MonthCal=calendar.monthcalendar(2020 5) foriinrange(len(MonthCal)): labels.append(MonthCal[i]) forrinrange(len(MonthCal) 1): forcinrange(7): iflabels[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()

tkinter制作表格(用tkinter制作一个日历)(10)

丰富我们的日历

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

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

大家想一想,怎么做出来。

我还是给标准实现代码

#@Author:Runsen importcalendar fromtkinterimport* root=Tk() defLabelCal(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) #先把界面清空 forrinrange(7): forcinrange(7): label=Label(root width=5 padx=5 pady=5 text='') label.grid(row=r 1 column=c) #把日历加到labels列表中 foriinrange(len(MonthCal)): labels.append(MonthCal[i]) #放置日历 forrinrange(len(MonthCal) 1): forcinrange(7): iflabels[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 defButtonPrevious(): globalYear Month Month=Month-1 ifMonth<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 defButtonNext(): globalYear Month Month=Month 1 ifMonth>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图

tkinter制作表格(用tkinter制作一个日历)(11)

猜您喜欢: