消息循环与窗体
会出现一个方框,可以设置大小
import tkinter #界面库
# win1 = tkinter.Tk()
# win1.title("513")
# win1.geometry("800x600")#设置大小
# win1.minsize(400,400)#窗体最小的范围
# win1.maxsize(800,800)#窗体最大的范围
# win1.mainloop()
#
# win2 = tkinter.Tk()
# win2.title("514")
# win2.geometry("800x600")#设置大小
# win2.minsize(400,400)#窗体最小的范围
# win2.maxsize(800,800)#窗体最大的范围
# win2.mainloop()
class Mywin:
def __init__(self,title="513",size="800x600",minx=400,miny=400,maxx=800,maxy=800 ):
self.win = tkinter.Tk()
self.win.title(title)
self.win.geometry(size)
self.win.minsize(minx,miny)
self.win.maxsize(maxx,maxy)
def show(self):
self.win.mainloop()
#阻塞执行
# haoren = Mywin(title="513")
# haoren.show()
# haoren1 = Mywin(title="514")
# haoren1.show()
##并发执行
haoren = Mywin(title="513")
haoren1 = Mywin(title="514")
haoren.show()
haoren1.show()
输出类
可以看到我们在刚才的表格的基础上添加了几个字
import tkinter
class classOutput(object):
"用于输出"
def __init__(self):
self.win = tkinter.Tk()
self.win.title("数据输入")
self.mylist = tkinter.Listbox(self.win,width=100)#构造列表
self.mylist.pack()#窗体适应列表
def show(self):
self.win.mainloop()
def insert(self,line):
self.mylist.insert(tkinter.END,line)
myout = classOutput()
myout.insert("123")
myout.show()
label显示
显示出label
import tkinter
win = tkinter.Tk()
label = tkinter.Label(win , text="wifi设置")#显示在win上
label.place(x = 10 , y =20)
label = tkinter.Label(win , text="密码设置")
label.place(x = 10 , y = 40)
win.mainloop()
按钮事件
有好几种提示的按钮,下面也写了注释
import tkinter.messagebox
#tkinter.messagebox.showinfo(title="你好",message="干嘛呢")
#tkinter.messagebox.showwarning(title="支付宝友情提醒",message="你的账户处于危险中")
#tkinter.messagebox.showerror(title="你好",message="快跑")
#ret = tkinter.messagebox.askquestion(title="确认",message="郝仁你好吗")
#ret = tkinter.messagebox.askretrycancel(title="确认",message="郝仁你好吗")
ret = tkinter.messagebox.askyesnocancel(title="确认",message="郝仁你好吗")#多一个取消按钮
if ret == tkinter.messagebox.YES:
print("很好")
else:
print("不是")
# if ret == True:
# print("很好")
# else:
# print("不是")
图片背景
能看到有两层背景
import tkinter
import tkinter.messagebox#导入弹出对话框
def show():
tkinter.messagebox.showinfo(title="你好", message="干嘛呢")
win = tkinter.Tk()
bm = tkinter.PhotoImage(file=r"C:\Users\Administrator\Desktop\bat+MINE.png")#代表一张图片
label = tkinter.Label(win, image=bm)
bbm = tkinter.PhotoImage(file=r"C:\Users\Administrator\Desktop\2.png")
bt = tkinter.Button(label,text = "点我", image=bbm,command = show)
bt.place(x=0,y=0)
#label = tkinter.Label(win,text = "hello")#pack的含义就是填充,我输入的图片有多大那么现实的框体就有多大
label.pack()#填充
win.mainloop()
对话框
还有好几种对话形式
import tkinter.messagebox
#tkinter.messagebox.showinfo(title="你好",message="干嘛呢")
#tkinter.messagebox.showwarning(title="支付宝友情提醒",message="你的账户处于危险中")
#tkinter.messagebox.showerror(title="你好",message="快跑")
#ret = tkinter.messagebox.askquestion(title="确认",message="郝仁你好吗")
#ret = tkinter.messagebox.askretrycancel(title="确认",message="郝仁你好吗")
ret = tkinter.messagebox.askyesnocancel(title="确认",message="郝仁你好吗")#多一个取消按钮
if ret == tkinter.messagebox.YES:
print("很好")
else:
print("不是")
# if ret == True:
# print("很好")
# else:
# print("不是")
显示数据列表
import tkinter #界面库
win = tkinter.Tk() #创建一个窗体
mylist = tkinter.Listbox(win,width=100)
mylist.pack()
for i in [x for x in range(100)]:
mylist.insert(tkinter.END,i)
win.mainloop()#消息循环
下拉列表
import tkinter
import tkinter.ttk
def go(*arg):
print(comlist.get())#抓去选择值
win = tkinter.Tk()
comvalue = tkinter.StringVar()#窗体自带的文本变量
comlist = tkinter.ttk.Combobox(win , textvariable = comvalue)#变量关联下拉列表
comlist["values"]=("1","2","3","4")
comlist.current(0)#默认选择当前第一个
comlist.bind("<<ComboboxSelected>>",go)#绑定选择了这个事件
comlist.pack()
win.mainloop()