1
我期待讓Tkinter的畫布的背景透明,但仍然有畫布的鼠標事件,這裏是我的代碼,我在Windows 10,Python的3.6:Python的Tkinter的帆布透明
from tkinter import *
import time
WIDTH = 500
HEIGHT = 500
LINEWIDTH = 1
TRANSCOLOUR = 'gray'
global old
old =()
tk = Tk()
tk.title('Virtual whiteboard')
tk.wm_attributes('-transparentcolor', TRANSCOLOUR)
canvas = Canvas(tk, width=WIDTH, height=HEIGHT)
canvas.pack()
canvas.config(cursor='tcross')
canvas.create_rectangle(0, 0, WIDTH, HEIGHT, fill=TRANSCOLOUR, outline=TRANSCOLOUR)
def buttonmotion(evt):
global old
if old ==():
old = (evt.x, evt.y)
return
else:
canvas.create_line(old[0], old[1], evt.x, evt.y, width=LINEWIDTH)
old = (evt.x, evt.y)
def buttonclick(evt):
global old
canvas.create_line(evt.x-1, evt.y-1, evt.x, evt.y, width=LINEWIDTH)
old = (evt.x, evt.y)
canvas.bind('<Button-1>', buttonmotion)
canvas.bind('<B1-Motion>', buttonclick)
while True:
tk.update()
time.sleep(0.01)
運行代碼時,它會創建一個透明背景,但我選擇下面的東西,而不是畫布。
該程序的期望行爲究竟是什麼? – Alex
一個虛擬白板,所以你可以在桌面上疊加線條,文本等 –
相關http://stackoverflow.com/q/19080499/4489998 – TrakJohnson