博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GUI图形界面
阅读量:7114 次
发布时间:2019-06-28

本文共 7265 字,大约阅读时间需要 24 分钟。

导入tkinter

  • import tkinter as tk
  • from tkinter import *

Lable

l = tk.Label(master,text,bg,font(,),width,height) #主体,输出,背景颜色,字体和大小,宽度,高度

import tkinter as tkwindow = tk.TK()    #创建窗口window.title("my first window")window.geometry('200x100')    #长x高l = tk.Label(window,text = 'OMG!this is iceer!',bg = 'green', font("Arial",15),width=20,height=2)#font为字体l.pack()#安置标签还可:l.place()window.mainloop()

Button

import tkinter as tkwindow = tk.Tk()window.title("window")window.geometry('180x60')var = tk.StringVar()# tkinter.StringVar保持值的变更随时显示在界面上#text 应改而使用textvariablel = tk.Label(window,textvariable = var ,bg = '#FCE4EC', font('Arial',12),width = 18, height = 2)l.pack()on_hit = False#全局变量,标记当前状态,控制lable显示或者不显示def hit_me():    global on_hit    if on_hit ==False:        on_hit = True        var.set("you hit me")    else:        on_hit = False        var.set("")b = tk.Button(window,text = 'hit me',bg = '#F8BBD0',width = 15,height = 1,command = hit_me)b.pack()window.mainloop()#不断刷新

-打开窗口是Label空白

  • 点击Button hit me

entry$text

import tkinter as tkwindow = tk.Tk()window.title("enter$text")window.geometry("200x200")e = tk.Entry(window,show = Node,bg = '#FCE4EC')e.pack()def insert_point():    var = e.get()    t.insert('insert',var)def insert_end():    var = e.get()    t.insert('end',var)#insert 可以到指定位置#比如 t.insert(1.1,var)   行从1开始列从0开始?b1 = tk.Button(window,text = 'insert point',weight = 15,bg = '#F48FB1',command = insert_point)b1.pack()b2 = tk.Button(window,text = 'insert point',weight = 15,bg = '#F48FB1',command = insert_end)b2.pack()t = tk.Text(window,height = 2, bg = 'FCE4EC')t.pack()#不需要mainloop()也可以重复执行?
  • 点击insert point,输入内容会输出到text光标处

  • 点击 insert end,会输出到text的最末

  • tk.Entry(show = '*')

  • little trick:show = ‘’输入其他符号, 假装中毒输入啥都显示一样

Listbox 列表控件

import tkinter as tkwindow = tk.Tk()window.title("listbox")window.geometry("200x200")varl = tk.StringVar()l = tk.Label(window,bg = "#0097A7",width=12,textvariable = var1)l.pack()def print_selection():    value = lb.get(lb.curselection())    varl.set(value)    #不需要声明全局变量?b = tk.Buton(window,text = 'print selection',width = 15,commad = print_selection)b.pack()var2 = tk.StringVar()var2.set(('NGC 2936','IRAS','NCGC 6537'))#set只需要输入一个参数,设定初始值时有多个元素需要用括号括起来lb = tk.Listbox(window,listvariable = var2, bg = '#00ACC1')list_items = [1047,'BPM']for item in list_items:    lb.insert('end',item)    lb.inster(1,'IC101')lb.insert(2,'世界上最孤独的鲸鱼')lb.delete(2)    #删除元素

Radiobutton 选择按钮

  • tkiter.Radiobutton(master,text = '',variable,value,command = ..) #选择此选项时value传递给variable
  • config()可以改变label的参数
import tkinter as tkwindow = tk.Tk()window.title("radiobutton")window.geometry('200x200')l = tk.Lable(window,text = 'empty',bg = '#A5D6A7',width = 12)l.pack()def print_selection():    l.config(text = 'you have selected' + var.get())    #config可以改变label的参数#选择Option A时,赋‘A’值给变量‘var’r1 = tk.Radiobutton(window,text = "Option A",variable = var, value = 'A',command = print_selection)r1.pack()r2 = tk.Radiobutton(window,text = "Option B",variable = var, value = 'B',command = print_selection)r2.pack()r3 = tk.Radiobutton(window,text = "Option C",variable = var, value = 'C',command = print_selection)r3.pack()window.mainloop()

checkbutton 勾选项

  • Radiobutton只能选定其中一个值,checkbutton可以勾选多个值
  • tkinter.Checkbutton(master,text='',variable='',onvalue = 1, command = ..) #选定就是打开onvalue,不选定就是offvalue=0
import tkinter as tkwindow = tk.Tk()window.title("checkbutton")window.geometry('250x120')l = tk.Label(window,width = 30,bg = '#40C4FF',text = 'empty')l.pack()def print_selection():    if(var1.get()== 1)&(var2.get()==0):        l.config(text = '52赫兹叫声')    elif(var1.get()== 0)&(var2.get()==1):        l.config(text = '从前有只鲸鱼叫ALice')    elif(var1.get()== 0)&(var2.get()==0):        l.cofig(text='')    else:        l.config(text = '从前有只鲸鱼叫ALice,没人听见她唱歌')    var1 = tk.IntVar()var2 = tk.IntVar()c1 = tk.Checkbutton(window,text = '52hz',variable = var1,onvalue = 1,command = print_selection)c1.pack()c2 = tk.Checkbutton(window,text = 'Alice',variable = var2,onvalue = 1,command = print_selection)c2.pack()

scale 尺度

  • tkinter.Scale(master,label,from_,to,orient,showvalue,tickinterval,command)
import tkinter as tkwindow = tk.Tk()window.title("scale")window.geometry('200x200')l = tk.Label(window,text = 'emptey',width = 20,by = '#FFEE58')l.pack()def print_selection(v):    l.config(text = 'you have selected'+v)    #v是from_吗?s = tk.Scale(window,label = 'try me',from_ = 7,to = 11,orient = tk.HORIZONTAL,length = 200,showvalue=0,tickinterval=2,command = print_selection)#lenth像素,orinent为排版方式,HORIZONTAL表示横向,tickinterval为标签单位长度,resolution为精确度s.pack()

Canvas 画布

import tkinter as tk  window = tk.Tk() window.title('my window') window.geometry('200x200')canvas = tk.Canvas(window,bg = '#00838F',height = 100,width=200)image_file=tk.PhotoImage(file='xxx.')image=canvas.creat_image(0,0,anchor='nw',imge_file)       #图片放的点位,nw就是northwestcanvas.pack()b=tk.Butthon(window,text='move',command=moveit).pack() window.mainloop()

Menubar 菜单

  • .add_cascade()添加到主菜单
  • .add_command()
import tkinter as tk  window = tk.Tk() window.title('menubar') window.geometry('200x200')  l = tk.Label(window,text='',bg = '#00838F') l.pack()  counter = 0 def do_job():    global counter     l.config(text='do'+str(counter))    #把整数形式转化为字符串    counter += 1     menubar = tk.Menu(window) filemenu = tk.Menu(menubar,tearoff=0) menubar.add_cascade(label='File',menu = filemenu) filemenu.add_command(label='New',command = do_job) filemenu.add_command(label='Open',command = do_job) filemenu.add_command(label='Save',command = do_job) filemenu.add_separator() filemenu.add_command(label='Exit',command=windoe.qiut)  edimenu = tk.Menu(menubar,tearoff=0) menubar.add_cascade(label='Edit',menu = editmenu) filemenu.add_command(label='Cut',command = do_job) filemenu.add_command(label='Copy',command = do_job) filemenu.add_command(label='Paste',command = do_job)  submenu = tk.Menu(filemenu) filemenu.add_cascade(label='Import',menu=submenu,underline=0) submenu.add_command(label='Submenul',command=do_job)  window.config(menu=menubar) window.mainloop()

Rrame 底层框架

import tkinter as tk window = tk.Tk()window.title('menubar')window.geometry('200x80')tk.Label(window,text = 'on the window',bg = '#00838F').pack()frm = tk.Frame(window)frm.pack()frm_l = tk.Frame(frm)frm_r = tk.Frame(frm)frm_l.pack(side='left')frm_r.pack(side='right')#基于主frm的左右tk.Label(frm_l,text = 'on the frm_l1',bg = '#009688').pack()tk.Label(frm_l,text = 'on the frm_l2',bg = '#009688').pack()tk.Label(frm_r,text = 'on the frm_r',bg = '#BDBDBD').pack()

messagebox 窗口

import tkinter as tkfrom tkinter import messagebox window = tk.Tk()window.title('menubar')window.geometry('200x80')def hit_me():    messagebox.showinfo(title = 'hi',message = 'how you doing')    #信息窗口tk.Button(window,text = 'hit me',command = hit_me).pack()
  • showinfo
  • showwarning
  • showerror
  • askquestion
  • askyesno
  • asktrycancel #返回字符串yes或者no
  • askokcancel #返回Turn或者False

pack(),grid(),place()

tk.Label(window,text=1).pack(side='top')tk.Label(window,text=1).pack(side='bottom')tk.Label(window,text=1).pack(side='left')tk.Label(window,text=1).pack(side='right')

for i in range(4):    for j in range(3):        tk.Label(window,text = 1).grid(row=i,column=j,padx=10,pady=10)
tk.Label(window,text=1).place(x=10,y=100,anchor='nw')

转载于:https://juejin.im/post/5c991c216fb9a070bf3600d6

你可能感兴趣的文章
ARC机制
查看>>
完成登录与注册页面的前端
查看>>
Java二十三设计模式之------中介者模式
查看>>
电子商城实录------项目目录的结构搭建及其说明3
查看>>
wget命令详解
查看>>
note_简单的数据绑定
查看>>
A Course on Borel Sets Exercise 1.3.3
查看>>
陶哲轩实分析 习题10.2.7 导函数有界的函数一致连续
查看>>
用C语言实现的轴对称变换
查看>>
陶哲轩实分析定理17.3.8(一)
查看>>
使用iostat分析IO性能
查看>>
left top right bottom问题
查看>>
android内存优化之图片压缩和缓存
查看>>
python中super与成员属性
查看>>
mysql 分库分表 ~ 方案选择浅谈
查看>>
回头再学Asp.net系列--基础篇(五)
查看>>
Linux 小知识翻译 - 「内核(kernel)」
查看>>
P3758 [TJOI2017]可乐
查看>>
动画--easeljs中的movieClip控件示例?
查看>>
细说浏览器特性检测(1)-jQuery1.4添加部分
查看>>