本文实例讲述了Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法。分享给大家供大家参考,具体如下:
首发时间:2018-03-04 16:39
Python的GUI各有各特点。
由于只是轻微涉及GUI开发,所以就以轻量级的tkinter来学习。
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('500x500') root.mainloop()
Button所有的可设置参数
activebackground, activeforeground, anchor, background, bitmap, borderwidth, cursor, disabledforeground, font, foreground highlightbackground, highlightcolor, highlightthickness, image, justify, padx, pady, relief, repeatdelay, repeatinterval, takefocus, text, textvariable, underline, wraplength
WIDGET-SPECIFIC OPTIONS【特有选项】: command, compound, default, height, overrelief, state, width
from tkinter import * def hello(): print("hello") root=Tk() # RELIEF=["flat", "raised", "sunken", "solid", "ridge", "groove"] btn1=Button(root,text='click me') btn1.config(bg='green',fg='white',cursor='hand1',height=10,width=10,command=hello,relief='sunken') btn1.config(anchor=LEFT) btn1.pack() # for col,i in enumerate(RELIEF): # btn=Button(root,text=i,relief=i,anchor=S) # btn.grid(row=0,column=col) root.mainloop()
STANDARD OPTIONS【label的标准可选参数】 activebackground, activeforeground, anchor, background, bitmap, borderwidth, cursor, disabledforeground, font, foreground, highlightbackground, highlightcolor, highlightthickness, image, justify, padx, pady, relief, takefocus, text, textvariable, underline, wraplength
WIDGET-SPECIFIC OPTIONS【特有选项】: height, state, width
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('500x500') label=Label(text='用户名:',bg='green') label.grid() root.mainloop()
STANDARD OPTIONS【标准可用参数】 activebackground, activeforeground, anchor, background, bitmap, borderwidth, cursor, disabledforeground, font, foreground, highlightbackground, highlightcolor, highlightthickness, image, justify, padx, pady, relief, takefocus, text, textvariable, underline, wraplength
#这是一段没有显示Frame 代码 from tkinter import * root=Tk() root.geometry('500x500') frame=Frame(root,height = 200,width = 400,bg = 'black') Label(frame,text='mylabel').pack() frame.pack() root.mainloop()
#下面是探究出缩水原因的代码 from tkinter import * root=Tk() root.geometry('500x500') frame=Frame(root,height = 400,width = 400,bg = 'green') button1=Button(frame,text='hello') button1.pack(side=LEFT,padx=5,pady=5)#增加了边距之后,发现出了frame的背景颜色 button2=Button(frame,text='hello') button2.pack(side=LEFT) frame.pack(side=TOP) root.mainloop()
#下面的是使用.pack_propagate(0)解决了问题的代码 from tkinter import * root=Tk() root.geometry('500x500') frame=Frame(root,height = 400,width = 400,bg = 'green') # Label(frame,text='mylabel',padx=5,pady=5).pack(side=LEFT) button1=Button(frame,text='hello') button1.pack(side=LEFT,padx=5,pady=5) button2=Button(frame,text='hello') button2.pack(side=LEFT) frame.pack_propagate(0) frame.pack(side=TOP) # frame.pack(side=TOP,fill=X) root.mainloop()
Valid resource names:
background, bd, bg, borderwidth, class, colormap, container, cursor, height, highlightbackground, highlightcolor, highlightthickness, menu, relief, screen, takefocus, use, visual, width
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('500x500') t1=Toplevel(root) t1.title("Top窗口") t1.geometry("100x100") label=Label(t1,text="用户名:") label.pack() root.mainloop()
常见可用参数:
activebackground, activeborderwidth, activeforeground, background, bd, bg, borderwidth, cursor, disabledforeground, fg, font, foreground, postcommand, relief, selectcolor, takefocus, tearoff, tearoffcommand, title, type
from tkinter import * root=Tk() menuBar=Menu(root,tearoff=0) root.config(menu=menuBar) filemenu=Menu(menuBar,fg='green')#文件菜单下的字体是绿色的 filemenu.add_command(label='新建',accelerator = 'Ctrl+N') filemenu.add_command(label='打开',accelerator = 'Ctrl+O') filemenu.add_command(label='保存',accelerator = 'Ctrl+S') filemenu.add_command(label='另存为',accelerator ='Ctrl+Shift+S') menuBar.add_cascade(label='文件',menu=filemenu) #这里测试root.config(menu=menuBar)的作用 # def show_menuBar(): # root.config(menu=menuBar) # button=Button(text='show_menu',command=show_menuBar) # button.pack() root.mainloop()
from tkinter import * root=Tk() menubtn=Menubutton(root,text='单击出现下拉菜单',relief='raise')#建立一个菜单按钮 menubtn.pack() #添加菜单 filemenu=Menu(menubtn) filemenu.add_command(label='新建') menubtn.config(menu=filemenu)#设置菜单按钮允许显示菜单,这里不是root了 root.mainloop()
可用参数: background, bd, bg, borderwidth, closeenough, confine, cursor, height, highlightbackground, highlightcolor, highlightthickness, insertbackground, insertborderwidth, insertofftime, insertontime, insertwidth, offset, relief, scrollregion, selectbackground, selectborderwidth, selectforeground, state, takefocus, width, xscrollcommand, xscrollincrement, yscrollcommand, yscrollincrement
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('500x500') mycanvas=Canvas(root,width=200,height=200,bg='green') mycanvas.pack() #画一个矩形 mycanvas.create_rectangle(10,10,110,110,outline = 'red',width = 5) root.mainloop()
Valid resource names: background, bd, bg, borderwidth, cursor, exportselection, fg, font, foreground, highlightbackground, highlightcolor, highlightthickness, insertbackground, insertborderwidth, insertofftime, insertontime, insertwidth, invalidcommand, invcmd, justify, relief, selectbackground, selectborderwidth, selectforeground, show, state, takefocus, textvariable, validate, validatecommand, vcmd, width, xscrollcommand.
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('300x300+20+10') entry=Entry(root) entry.pack() root.mainloop()
STANDARD OPTIONS background, borderwidth, cursor, exportselection, font, foreground, highlightbackground, highlightcolor, highlightthickness, insertbackground, insertborderwidth, insertofftime, insertontime, insertwidth, padx, pady, relief, selectbackground, selectborderwidth, selectforeground, setgrid, takefocus, xscrollcommand, yscrollcommand, WIDGET-SPECIFIC OPTIONS autoseparators, height, maxundo, spacing1, spacing2, spacing3, state, tabs, undo, width, wrap,
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('300x300+250+55') button=Button(text='submit') button.pack() t1=Text(root,height=100,width=100,cursor='cross') t1.pack() root.mainloop()
Valid resource names: background, bd, bg, borderwidth, cursor, exportselection, fg, font, foreground, height, highlightbackground, highlightcolor, highlightthickness, relief, selectbackground, selectborderwidth, selectforeground, selectmode, setgrid, takefocus, width, xscrollcommand, yscrollcommand, listvariable
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('300x300+20+10') # listbox=Listbox(root) listbox=Listbox(root,selectmode=EXTENDED) listbox.insert(0,"孙悟空") listbox.insert(1,"唐僧") listbox.insert(2,"葫芦娃") listbox.pack() def func1(): print(listbox.get(0,END))#以元组形式返回所有listbox的元素 def func2(): print(listbox.select_includes(1))#当对应索引被选中时返回True def func3(): print(listbox.curselection())#以元组形式返回被选中的元素 btn1=Button(text="获取所有元素",command=func1) btn1.pack() btn2=Button(text="判断1是否选中",command=func2) btn2.pack() btn3=Button(text="获取选中的索引",command=func3) btn3.pack() root.mainloop()
可用参数:activebackground, activeforeground, anchor, background, bd, bg, bitmap, borderwidth, command, cursor, disabledforeground, fg, font, foreground, height, highlightbackground, highlightcolor, highlightthickness, image, indicatoron, justify, offvalue, onvalue, padx, pady, relief, selectcolor, selectimage, state, takefocus, text, textvariable, underline, variable, width, wraplength
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('200x200') def submit(): print('男:',v1.get(),'女:',v2.get(),'另外:',v3.get())#选择则值为1,不选中为0 # pass v1 = IntVar() #用tkinter变量来表示按钮是否选中 v2 = IntVar() v3 = IntVar() # 使用 Checkbutton时,必须创建一个 Tkinter 变量用于存放按钮的状态: cbtn=Checkbutton(root,text='男',variable=v1,command=submit) cbtn2=Checkbutton(root,text='女',variable=v2,command=submit) #v3是为了测试variable相同时,点一个,所有的v3都被选中 cbtn3=Checkbutton(root,text='不明',variable=v3,command=submit) cbtn4=Checkbutton(root,text='保密',variable=v3,command=submit) button=Button(text='submit',command=submit) button.pack() cbtn.pack() cbtn2.pack() cbtn3.pack() cbtn4.pack() root.mainloop()
Valid resource names: activebackground, activeforeground, anchor, background, bd, bg, bitmap, borderwidth, command, cursor, disabledforeground, fg, font, foreground, height, highlightbackground, highlightcolor, highlightthickness, image, indicatoron, justify, padx, pady, relief, selectcolor, selectimage, state, takefocus, text, textvariable, underline, value, variable, width, wraplength
from tkinter import * root=Tk() v=StringVar() l=['man','woman','unknow'] def ptr(): print(v.get()) for i in l: rbtn=Radiobutton(root,text=i,variable=v,value=i,command=ptr) rbtn.pack() root.mainloop()
Valid resource names:
activebackground, background, bigincrement, bd, bg, borderwidth, command, cursor, digits, fg, font, foreground, from, highlightbackground, highlightcolor, highlightthickness, label, length, orient, relief, repeatdelay, repeatinterval, resolution, showvalue, sliderlength, sliderrelief, state, takefocus, tickinterval, to, troughcolor, variable, width
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('300x300+20+10') scale=Scale(root,from_=0, to=100)#默认是竖的 scale2=Scale(root,from_=0, to=100,orient=HORIZONTAL)#横的 scale.pack() scale2.pack() root.mainloop()
Valid resource names:
activebackground, activerelief, background, bd, bg, borderwidth, command, cursor, elementborderwidth, highlightbackground, highlightcolor, highlightthickness, jump, orient, relief, repeatdelay, repeatinterval, takefocus, troughcolor, width.
from tkinter import * root=Tk() root.title('我的窗口') root.geometry('300x300+250+55') button=Button(text='submit') button.pack() t1=Text(root,height=100,width=100,cursor='cross') slb=Scrollbar(root) slb.pack(side=RIGHT,fill=Y)#设置滚动条的显示形式 t1.config(yscrollcommand=slb.set)#设置允许滚动条 #由于没有绑定事件,所以直接拖拽滚动条无效 t1.pack() root.mainloop()
想要了解更多,可以参考tkinter的官方文档:http://effbot.org/tkinterbook/
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。