python-tkinter组件的使用(2)

(1)Button组件
创建和显示:对象=Button(窗口对象,text=‘button组件显示的文本’,command=单击按钮调用的对象)
对象.pack()
利用button组件显示图片:
bm=(hotoImage(file=’’)
b=Button(win,text=’’,command=单击按钮调用的对象,image=bm)
b.bm=bm
设置button组件的大小:width用于设置宽度,height用于设置高度

from tkinter import*
from tkinter.messagebox import*
win=Tk()
win.title('我的窗口')
def callback():
    showinfo(title='',message='点我干嘛')
b=Button(win,text='点我啊',command=callback,width=100,height=50)
b.pack()
bm=PhotoImage(file='D:\python3\Lib\idlelib\Icons\idle_48.gif')
a=Button(win,text='点我啊',command=callback,image=bm)
a.bm=bm
a.pack()
win.mainloop()

在这里插入图片描述
在这里插入图片描述

bitmap 指定按钮上显示的位图
compound 指定文本与图像如何在Label上显示,缺省为None,当指定image/bitmap时,文本将被覆盖,只显示图片(left:图像居左,right:图像居右,top:图像居上,bottom:图像居下,center:图像居中)
wraplength 指定多少行后开始换行,用于多行显示文本
bg 设置背景颜色
fg 设置前景颜色
bd 设置按钮的边框大小,缺省为1或2个像素
state 设置组件状态,正常(NORMAL),激活(ACTIVE),禁用(DISABLED)
from tkinter import*
from tkinter.messagebox import*
win=Tk()
win.title('我的窗口')
b1=Button(win,text='粗边框的按钮',bd=5)
b1.pack()
b2=Button(win,text='不能点击的按钮',state=DISABLED)
b2.pack()
win.mainloop()

在这里插入图片描述
(2)Canvas画布组件
①创建和显示Canvas组件:对象=Canvas=(窗口,选项,选项,……)

bd 指定边框的宽度,单位是像素
bg 背景颜色
confine 指定画布在滚动区域外是否可以动,默认为True不可滚动
height 画布高度
width 画布宽度
highlightcolor 选中画布时的背景色
relief 指定画布的边框样式,可选值包括SUNKEN,RAISED,GROOVE,RIDGE
scrollregion 指定画布的滚动区域的元组(w,n,e,s)

②显示:对象.pack()
③绘制线条create_line(x0,y0,x1,y1,选项)

arrow 指定直线是否使用箭头(none没有箭头,first起点有箭头,last终点有箭头,both两端都有箭头)
arrowshape 设置箭头的形状,由三个整数组成,分别代表箭头的填充长度,箭头长度和宽度,如:arrowshape=‘40,40,10’
fill 指定线段的颜色
dash 指定线段为虚线

④绘制矩形:create_rectangle(矩形左上方的x坐标,左上方的y坐标,右下方的x坐标,右下方的y坐标,选项……)

outline 指定边框的颜色
dash 指定边框为虚线
stipple 使用指定的自定义画刷填充矩形

⑤绘制弧create_arc(弧外框矩形左上角的x坐标,y坐标,右下角的x坐标,y坐标,选项……)

start 起始弧度
extent 终止弧度

⑥绘制多边形create_polygon(顶点1的x坐标,y坐标,顶点2的x坐标,y坐标……)

smooth 指定多边形的平滑程度,等于0是折线,等于1为平滑曲线

⑦绘制椭圆create_oval(包裹椭圆左上角x坐标,y坐标,椭圆的长度,椭圆的宽度,选项……)

from tkinter import*
win=Tk()
win.title('我的窗口')
cv=Canvas(win,bg='white',width=300,height=300)
cv.create_line(10,10,30,80,width=2,dash=7)
cv.create_rectangle(100,100,120,120,outline='blue',fill='yellow',width=2)
cv.create_arc(250,250,280,280,outline='black',fill='red',width=2,start=0,extent=359)
cv.create_polygon(100,5,0,80,200,80,outline='blue',fill='pink',width=2)
cv.create_oval(0,200,150,80,width=2,outline='black',fill='gray')
cv.pack()
win.mainloop()

在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页