两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

Canvas,中文意為畫布,在Tkinter模塊中對(duì)應(yīng)的是一片矩形區(qū)域,給使用者提供繪圖的空間,可以把圖形、文本、橢圓或按鈕等組件放在畫布上,也可以進(jìn)行圖案的繪畫、

在使用Canvas組件之前我們要先來學(xué)習(xí)一下它對(duì)應(yīng)的屏幕坐標(biāo)系。

計(jì)算機(jī)中的圖像我們一般用像素來作單位,每個(gè)像素會(huì)有2個(gè)值,我們在Canvas組件中,對(duì)應(yīng)的窗口左上方的坐標(biāo)為(0,0),也就是說在平面直角坐標(biāo)系中對(duì)應(yīng)的x軸和y軸都為0,窗口右下角的坐標(biāo)為距離x軸和Y軸的兩個(gè)最大值,如圖:

tkinter16

我們在Canvas畫布中放置組件的時(shí)候,一定要保證組件坐標(biāo)的正確。

Canvas的語法結(jié)構(gòu)為:

my_canvas = Canvas ( 父類, 可選項(xiàng) )

父類即為我們放置的上一層窗口名,可選項(xiàng)有bd、bg、continue、cursor、height、width、highlightcolor、relief、scrollregion等,這些選項(xiàng)在前面都有介紹,在這里就不作過多的講解。

Canves組件繪制圖形的方法有多種,分別有create_line、create_rectangle、create_oval、create_arc、create_polygon,我們下面進(jìn)行一一介紹。

1. create_line ? 創(chuàng)建線條

語法格式如下:

canvas.create_line(x1, y1, x2, y2, ..., xn, yn, options)

我們可以通過這種方法在畫布上的兩個(gè)或者n個(gè)點(diǎn)之間畫出一條直線,前兩個(gè)坐標(biāo)(x1,y1)即為起始點(diǎn),(xn,yn)為終點(diǎn)。

代碼如下:

import tkinter
class TK:
    def __init__(self):
        self.window = tkinter.Tk()
        self.canvas = tkinter.Canvas(self.window,width = 300,height = 300,bg = 'pink')
        self.canvas.create_line(30,30,100,200,200,200,300,200,300,300)
        self.canvas.pack()
        tkinter.mainloop()
m = TK()

效果如圖:

tkinter17

我們選取的坐標(biāo)為(30,30)->(100,200)->(200,200)->(300,300),根據(jù)上面的坐標(biāo)我們畫出上圖。

2. create_rectangle ? 創(chuàng)建矩形

創(chuàng)建矩形的語法格式為:

canvas.create_rectangle(x1,y1,x2,y2,可選項(xiàng))

矩形只需要2個(gè)坐標(biāo)即可確定,因此我們只需要左上角和右下角的坐標(biāo)(x1,y1)和(x2,y2),代碼如下:

import tkinter
class TK:
    def __init__(self):
        self.window = tkinter.Tk()
        self.canvas = tkinter.Canvas(self.window,width = 300,height = 300,bg = 'pink')
        self.canvas.create_rectangle(100,100,200,200)
        self.canvas.pack()
        tkinter.mainloop()
m = TK()

運(yùn)行如圖:

tkinter18

3. create_oval ? 創(chuàng)建橢圓

語法格式如下:

canvas.create.oval(x1,y1,x2,y2,可選項(xiàng))

四個(gè)坐標(biāo)對(duì)應(yīng)的位置如圖:

tkinter19

4. create_arc ? 創(chuàng)建弧形

語法格式如下:

canvas.create_arc(x1,y1,x2,y2,start = angle,extent = width,可選項(xiàng))

其中,坐標(biāo)對(duì)應(yīng)的和上圖中橢圓對(duì)應(yīng)的一致,start中的值對(duì)應(yīng)的是弧形的起始角度,extent是對(duì)應(yīng)的是弧形逆時(shí)針角度范圍。

代碼如下:

import tkinter
class TK:
    def __init__(self):
        self.window = tkinter.Tk()
        self.canvas = tkinter.Canvas(self.window,width = 300,height = 300,bg = 'pink')
        self.canvas.create_arc(60,60,220,220,start =0,extent = 120,fill ='blue')
        self.canvas.pack()
        tkinter.mainloop()
m = TK()

運(yùn)行如圖:

tkinter20

5. create_polygon ? 創(chuàng)建多邊形

語法格式如下:

canvas.create_polygon(x1,y1,x2,y2,.....xn,yn,可選項(xiàng))

每個(gè)坐標(biāo)對(duì)應(yīng)一個(gè)位置,第一個(gè)為第一個(gè)頂點(diǎn),依次鏈接,最后一個(gè)坐標(biāo)自動(dòng)關(guān)閉多邊形。

代碼如下:

import tkinter
class TK:
    def __init__(self):
        self.window = tkinter.Tk()
        self.canvas = tkinter.Canvas(self.window,width = 300,height = 300,bg = 'pink')
        self.canvas.create_polygon(150,0,200,100,300,100,200,185,280,280,150,230,20,280,100,185,
        0,100,100,100,fill ='red')
        self.canvas.pack()
        tkinter.mainloop()
m = TK()

運(yùn)行圖如下:

         

tkinter21

大家可以通過坐標(biāo)的改變?nèi)ギ嫵鲎约合胍嫵龅膱D形,可選的參數(shù)還有dash、outline、sommth和width。

6. 總結(jié)

我們可以通過canvas去繪畫出各式各樣的圖案,當(dāng)然它也其他的功能,在下一節(jié)的例題中我們還會(huì)使用到它。


點(diǎn)贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)