Tkinter圖形繪製——圖形版發牌程序

開發工具:VS Codecanvas

1.程序功能介紹數組

機隨機將52張牌(不含大王和小王)發給四位牌手,在屏幕上顯示每位牌手的牌,程序的運行如圖3所示。接下來,咱們以使用Canvas繪製Tkinter模塊圖形爲例,介紹創建簡單GUI(圖形用戶界面)遊戲界面的方法。框架

2.程序設計思路函數

將要發的52張牌,按梅花0~12,方塊13-  25,紅桃26- 38,黑桃39-  51的順序編號並存儲在pocker列表c未洗牌以前l,列表元素存儲的是某張牌c其實是牌的編號)。同時,按此編號將撲克牌圖片順序存儲在imgs列表中。也就是說,imgs[0]存儲梅花A的圖片,imgs[1]存儲梅花2的圖片,imgs[14]存儲方塊2的圖片,依次類推。工具

發牌後,根據每位牌手(pl,p2,p3,p4)各自牌的編號列表,從imgs獲取對應牌的圖片,並使用create- image《x座標,y座標),image=圖像文件)將牌顯示在指定位置。佈局

3.Canvas圖形繪製技術開發工具

Canvas爲Tkinter提供了繪圖功能,其提供的圖形繪製函數可繪製線形、圓形、橢圓、多邊形、圖片等。設計

Canvas畫布組件對象

Canvas(畫布)是一個長方形的區域,用於圖形繪製或複雜的圖形界面佈局。用戶以在畫布上繪製圖形、文字,放置各類組件和框架。blog

可使用下面的方法建立一個Canvas對象。

Canvas對象囂Canvas  (窗口對象+  選項+  …)

顯示Canvas對象的方法以下。

Canvas對象。pack()

Canvas上的圖形對象

1.繪製圖形對象

在Canvas畫布上能夠繪製各類圖形對象,經常使用繪製函數以下。

create_arc():繪製圓弧。

create_line():繪製直線。

create_bitmap():繪製位圖。

create_image():繪製位圖圖像。

create_oval():繪製橢圓。

create_polyon():繪製多邊形

create_window():繪製子窗口。

create_text():建立一個文字對象。

Canvas上的每一個繪製對象都有一個標識id(整數),使用繪製函數建立繪製對象時,返回繪製對象的id。

idl=cv.  create  line (10,10,100,80+width=2,dash^-7)月並繪製直線

idl能夠獲得繪製對象直線的id。

在建立圖形對象時,可使用屬性tags設置圖形對象的標記(tag),例如:

rt  =  cv. create _rectangle (10, 10, 110, 110,tags =('r1','r2','r3'))

指定標記後,使用find withtag()方法能夠獲取指定tag的圖形對象,而後設置圖形對象的屬性。find withtag()方法的語法以下:

Canvas對象.find withtag (tag名)

find withtag()方法返回一個圖形對象數組,其中包含全部具備tag名的圖形對象。

使用itemconfig()方法能夠設置圖形對象的屬性,語法以下:

Canvas對象.  itemconfig  (圖形對象,屬性1=值1+屬性2=值2,…)

繪製圓弧

使用create_arc()方法能夠建立一個圓弧對象,圓弧對象能夠是一個弓形、扇形或者一個簡單的弧,具體語法以下:

Canvas對象.create_arc(弧外框矩形左上角的x座標+弧外框矩形左上角的y座標,弧外框矩形右下角的x座標+弧外框矩形右下角的y座標,選項,…)

建立圓弧對象時的經常使用選項: outline指定圓弧邊框顏色,fill指定填充顏色,width指定圓弧邊框的寬度,start表明 起始角度,extent表明指定角度偏移量而不是終止角度。

繪製線條

使用create_line()方法能夠建立一個線條對象,具體語法以下:

line  薑 canvas.create一  line (x0,  y0,  xl,  yl,  ¨,+  xn,’  yn,  選項)

參數x0、y0、x一、y一、……、xn、yn是線段的端點。

建立線段對象時的經常使用選項:width指定線段寬度,arrow指定是否使用箭頭t none表示沒有箭頭,first表示起點有箭頭,last表示終點有箭頭,both表示兩端有箭頭),fill指定線段顏色,dash指定線段爲虛線(其整數值決定虛線的樣式)。

繪製矩形

使用create_rectangle()方法能夠建立矩形對象。具體語法以下:

Canvas對象.create_rectangle(矩形左上角的x座標,矩形左上角的y座標,矩形右下角的x座標,矩形右下角的y座標,選項,…)

建立矩形對象時的經常使用選項: outline指定邊框顏色,fill指定填充顏色,width指定邊框的寬度,dash指定邊框爲虛線,stipple使用指定自定義畫刷填充矩形。

繪製多邊形

使用create_polygon()方法能夠建立一個多邊形對象,多邊形對象能夠是一個三角形、矩形或者任意一個多邊形,具體語法以下:

Canvas對象.create-polygon(頂點1的x座標,頂點1的y座標,頂點2的x座標,頂點2的y座標,  …,頂點n的x座標,頂點n的y座標,選項,…)

建立多邊形對象時的經常使用選項: outline指定邊框顏色,fill指定填充顏色,width指定邊框的寬度,smooth指定多邊形的平滑程度(o表示多邊形的邊是折線,1表示多邊形的邊是平滑曲線)。

繪製橢圓

使用create_oval()方法能夠建立一個橢圓對象,具體語法以下:

Canvas對象.create oval(包裹橢圓的矩形左上角x座標,包裹橢圓的矩形左上角y座標。包裹橢圓的矩形右下角x座標,包裹橢圓的矩形右下角y座標,選項,…)

建立橢圓對象時的經常使用選項:outline指定邊框顏色,fill指定填充顏色,width指定邊框的寬度。若是包裹橢圓的矩形是正方形,則繪製的是一個圓形。

繪製文字

使用create_text()方法能夠建立一個文字對象,具體語法以下:

文字對象= Canvas對象.create text((文本左上角的x座標,文本左上角的y座標),選項,…)

建立文字對象時的經常使用選項: text是文字對象的文本內容,fill指定文字顏色,anchor控制文字對象的位置(其中,'W'表示左對齊,’e,表示右對齊,’n’表示頂對齊,,s,表示底對齊,’nw,表示左上對齊,’sw’表示左下對齊,,se,表示右下對齊,,ne嚷示右上對齊,,center,表示居中對齊,anchor默認值爲,center'),justify設置文字對象中文本的對齊方式(其中,’left'表示左對齊,’right’表示右對齊,’center’表示居中對齊,justify默認值爲’center')。

select from()方法用於指定選中文本的起始位置,具體用法以下:

Canvas對象.select-from(文字對象,選中文本的起始位置)

select_to()方法用於指定選中文本的結束位置,具體用法以下:

Canvas對象.selectto(文字對象,選中文本的結束位置)

繪製位圖和圖像

繪製位圖    使用create bitmap()方法能夠繪製Python內置的位圖,具體方法

Canvas對象。create_bitmap((x座標,y座標),bitmap=位圖字符串,選項,  …)

其中:(x座標,y座標)是位圖放置的中心座標;經常使用選項有bitmap、activebitmap和出sabledbitmap,分別用於指定正常、活動和禁用狀態顯示的位圖。

繪製圖像

在遊戲開發中須要使用大量圖像,採用create bitmap()方法能夠繪製圖形、圖像,具體方法以下:

Canvas對象.create image((x座標,y座標),  image=圖像文件對象+  選項,  …)

其中:(x座標,y座標)是圖像放置的中心座標;經常使用選頂有unage、activeimage和disabled image,分別用於指定正常、活動和禁用狀態下顯示的圖像。

注意:使用PhotoImage函數可獲取圖像文件對象。

img1=PhotoImage(file =圖像文件)

修改圖形對象的座標

使用coords()方法能夠修改圖形對象的座標,具體方法以下:

Canvas對象.coords(圖形對象,  (圖形左上角的x座標,圖形左上角的y座標,圖形右下角的x座標,圖形右下角的y座標))

由於能夠同時修改圖形對象的左上角的座標和右下角的座標,因此能夠縮放圖形對象。

注意:若是圖形對象是圖像文件,則只能指定圖像中心點座標,而不能指定圖像對象左上角的座標和右下角的座標,故不能縮放圖像。

移動指定圖形對象

使用move()方法能夠修改圖形對象的座標,具體方法以下:Canvas對象.move  (圖形對象,  x座標偏移量,  y座標偏移量)

刪除圖形對象

使用delete()方法能夠刪除圖形對象,具體方法以下:

Canvas對象.delete  (圖形對象)

縮放圖形對象

使用scale()方法能夠縮放圖形對象,具體方法以下:

Canvas對象.scale(圖形對象,  x軸偏移量,y軸偏移量,x軸縮放比例,y軸縮放比例)

4.參考代碼

5.運行結果

相關文章
相關標籤/搜索