0
点赞
收藏
分享

微信扫一扫

GUI界面(未完)

爱情锦囊 2022-04-17 阅读 8
python

消息循环与窗体

会出现一个方框,可以设置大小

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

在这里插入图片描述

举报

相关推荐

0 条评论