2013-02-17 2 views
2

Tkinter에서 프레임 크기 및 프레임 위치 (마스터 위젯)를 설정하려고합니다. this answer의 기반으로, 내 코드에 이것을 추가 :Tkinter에서 프레임 크기 및 위치 설정

Traceback (most recent call last): 
    File #file path, line 39, in <module> 
    f = GetWord(root) 
    File #file path, line 8, in __init__ 
    master.geometry("%s+%s+%s+%s" % (screensize[0], screensize[1], screensize[2], screensize[3])) 
    File "C:\Python2.7.3\lib\lib-tk\Tkinter.py", line 1534, in wm_geometry 
    return self.tk.call('wm', 'geometry', self._w, newGeometry) 
TclError: bad geometry specifier "1366+768+17+17" 

I 클래스 다음과 같이 호출 :이 일 때

from Tkinter import * 
import ctypes 
user = ctypes.windll.user32 
screensize = (user.GetSystemMetrics(0), user.GetSystemMetrics(1), user.GetSystemMetrics(2), user.GetSystemMetrics(3)) 

class GetWord: 
    def __init__(self, master): 
     master.geometry("%s+%s+%s+%s" % (screensize[0], screensize[1], screensize[2], screensize[3])) 
     # I added the above in, but not sure how it works 
     self.frame = Frame(master, width = screensize[0], height = screensize[1]) 
     self.frame.grid() 

, 나는 TclError 얻을

root = Tk(className='derp') 
root.columnconfigure(0, weight=1) 
root.rowconfigure(0, weight=1) 
f = GetWord(root) 
root.mainloop() 

이 문제를 어떻게 해결할 수 있습니까? 프레임을 화면 가운데에서 시작하여 특정 창 크기에서 시작하고 싶습니다. (지금은 전체 화면이지만 나중에 변경합니다). 감사!

+2

'이어야한다 "% SX %의 + % s의 + % s'에 '폭, 높이, 왼쪽, 오른쪽 (주'X"+ "의"X "문자를 사용해야합니다 '대신'+') –

+0

@AntonKovalenko 오, 작은 실수. 이를 답변으로 추가해야합니다. 또한 어떻게 프레임을 센터링 할 수 있습니까? –

+0

당신은 이미 사용자의 전체 화면을 프레임으로 채우고 있습니다. 나는 그 프레임을 중앙에 배치 할 필요가 없습니다. –

답변

5

는 대신

master.geometry("%sx%sx%sx%s" % (screensize[0], screensize[1], screensize[2], screensize[3])) 
+0

일반적으로'screensize [0]/2'와'screensize [1]/2'을 매개 변수로 사용하려고합니다. 화면 중앙에 창을 중앙에 배치하려면 어떻게합니까? –

+0

@ F3AR3DLEGEND [센터 창] (http://stackoverflow.com/a/10018670/1217270) –

관련 문제