2017-02-16 29 views
0
from tkinter import * 

root = Tk() 

coords=1017,474 
frame = Canvas(root, width=1680, height=960) 


def cords(event): 
    print(event.x,event.y) 



def click(event): 
    frame.create_line(event.x,event.y,coords) 

frame.bind('<B1-Motion>',click) 
frame.bind('<Button-1>',cords) 


photo=PhotoImage('images.png') 
label=Label(frame,image=photo) 
label.grid(row=5,) 

frame.pack() 

root.mainloop() 

當我運行這段代碼時我的窗口是最小尺寸。有人能告訴我爲什麼嗎?當它的大小合適時,我的綁定和圖像都不存在。我的畫布我小的時候尺寸1680x960

+0

您是否期望標籤位於畫布內部或外部?當窗口調整大小時,您是否期望畫布的增長和縮小?你期望能夠滾動畫布嗎? –

回答

0

的原因是因爲這一行的:

label.grid(row=5,) 

這導致父窗口(在這種情況下,畫布),以縮小以適合的標籤。

有許多解決方案,但這一切都取決於您期望的行爲,這在您的問題中不明確。一般來說,您不應該在畫布的子項上調用gridpack。通常,您使用畫布的create_window方法將小部件放置在畫布內。

還有其他解決方案,但正確的解決方案取決於您打算如何使用畫布和標籤。

+0

你如何使用create_window方法 – Nerfbeard