溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)Tkinter canvas的畫布參數(shù),刪除組件,添加垂直滾動(dòng)條

發(fā)布時(shí)間:2021-10-11 21:15:40 來(lái)源:億速云 閱讀:105 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“如何實(shí)現(xiàn)Tkinter canvas的畫布參數(shù),刪除組件,添加垂直滾動(dòng)條”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何實(shí)現(xiàn)Tkinter canvas的畫布參數(shù),刪除組件,添加垂直滾動(dòng)條”吧!

目錄
  • 1、畫布 Canvas的參數(shù)

  • 2、刪除鼠標(biāo)下的組件

  • 3、帶垂直滾動(dòng)條的畫布

1、畫布 Canvas的參數(shù)

from tkinter import *
win = Tk()
win.geometry('500x500+500+100')
canvas = Canvas(
        master=win,  # 父控件
        bg='orange',  # 背景顏色
        bd=2,  # 邊框?qū)挾?
        closeenough=1,  # 當(dāng)鼠標(biāo)與畫布上組件的距離小于該值時(shí),認(rèn)為鼠標(biāo)在該組件上,是一個(gè)浮點(diǎn)型的值
        cursor='circle',  # 鼠標(biāo)飄過(guò)的樣式
        height=300,  # 畫布的高
        width=300,  # 畫布的寬
        highlightbackground='blue',  # 沒(méi)有獲得焦點(diǎn)時(shí)高亮邊框的顏色
        highlightcolor='red',  # 獲得焦點(diǎn)時(shí)高亮邊框的顏色
        highlightthickness=5,  # 高亮邊框的寬度
        relief='groove',  # 邊框的樣式 flat, groove, raised, ridge, solid, or sunken
        state='normal',  # 狀態(tài) normal or disabled
        scrollregion=(0, 0, 400, 400),  # 畫布可以被滾動(dòng)的范圍
        confine=True,  # 畫布是否允許滾動(dòng)超出 scrollregion 選項(xiàng)指定的范圍
        selectbackground='yellow',  # 畫布對(duì)象被選中時(shí)的背景顏色
        selectborderwidth=10,  # 畫布對(duì)象被選中時(shí)的邊框?qū)挾?
        takefocus=True,  # 使用 Tab 鍵是否可以將焦點(diǎn)移動(dòng)到輸入框中
        yscrollcommand=None,  # 設(shè)置垂直滾動(dòng)條,一般與滾動(dòng)條相關(guān)聯(lián)使用
        yscrollincrement=1,  # 設(shè)置垂直滾動(dòng)條的步長(zhǎng)
        xscrollcommand=None,  # 設(shè)置水平滾動(dòng)條,一般與滾動(dòng)條相關(guān)聯(lián)使用
        xscrollincrement=1,  # 設(shè)置水平滾動(dòng)條的步長(zhǎng)
        )
canvas.pack(pady=50)
canvas.create_window((100, 100), window=Entry(canvas))
Button(win, text='按鈕').pack()
win.mainloop()

如何實(shí)現(xiàn)Tkinter canvas的畫布參數(shù),刪除組件,添加垂直滾動(dòng)條

2、刪除鼠標(biāo)下的組件

from tkinter import *

def event(w):
    #  current 表示刪除鼠標(biāo)下的組件
    canvas.delete('current')

win = Tk()
win.geometry('500x500+500+100')
canvas = Canvas(win)
canvas.pack(fill=BOTH, expand=True)
# 畫實(shí)線,填充橙色,設(shè)置寬度為10
for i in range(10, 200, 20):
    canvas.create_line(i, 100, i, 200, width=10, fill='orange')
#  綁定鼠標(biāo)左鍵點(diǎn)擊事件
canvas.bind('<Button-1>', event)
win.mainloop()

如何實(shí)現(xiàn)Tkinter canvas的畫布參數(shù),刪除組件,添加垂直滾動(dòng)條

3、帶垂直滾動(dòng)條的畫布

from tkinter import *

def event2():
    for i in range(0, 220):
        # 繪制實(shí)線,填充粉色,設(shè)置寬度為10
        canvas.create_line(0, i, 100, i, fill='pink', width=10)
    for i in range(230, 300):
        # 繪制實(shí)線,填充藍(lán)色,設(shè)置寬度為50
        canvas.create_line(0, i, 100, i, fill='blue', width=50)

def event1(event):
    """
    事件的屬性 delta 解析
    在MouseWheel 事件中,正值代表上卷,負(fù)值代表下卷;
    在 Window 下,通常是 120 的倍數(shù);在 MacOS 下,為 1 的倍數(shù)
    """
    number = int(-event.delta / 120)
    canvas.yview_scroll(number, 'units')

win = Tk()
win.geometry('500x500+500+100')
frame = Frame(win)
sv = Scrollbar(frame)  # 定義垂直滾動(dòng)條
sv.pack(side=RIGHT, fill=Y)  # 放置垂直滾動(dòng)條在最右側(cè),占滿Y軸
canvas = Canvas(frame, bd=2, bg='orange', relief='groove')
canvas.pack()
canvas.config(yscrollcommand=sv.set)  # 設(shè)置畫布的Y軸滾動(dòng)條函數(shù)與垂直滾動(dòng)條綁定
canvas.config(scrollregion=(0, 0, 300, 800))  # 設(shè)置畫布可以滾動(dòng)的范圍
sv.config(command=canvas.yview)  # 設(shè)置垂直滾動(dòng)條的函數(shù)與畫布的Y軸滾動(dòng)條事件綁定
frame.pack(pady=50)
canvas.config(yscrollincrement=1)  # 設(shè)置滾動(dòng)條的步長(zhǎng)
canvas.bind("<MouseWheel>", event1)  # 添加滾輪事件
Button(text='為畫布添加組件', command=event2).pack()
event2()
win.mainloop()

如何實(shí)現(xiàn)Tkinter canvas的畫布參數(shù),刪除組件,添加垂直滾動(dòng)條

到此,相信大家對(duì)“如何實(shí)現(xiàn)Tkinter canvas的畫布參數(shù),刪除組件,添加垂直滾動(dòng)條”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI