티스토리 뷰

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

tkiner로 틀의 크기를 지정하여 생성후해당 틀에 버튼을 다시 생성하면,

처음이 지정했던 높이와 너비가 무시되고틀의 크기는 버튼의 크기에맞춰 신축적으로 변하게 된다.

그 이유를 설명하자면

packer(꾸림자)의행위에는 일관성이 없다.

다른 말로 하자면꾸림자의 행위는 수많은 상황적 요인에 따라 달라진다.

꾸림자는 그릇()이 비어있다면크기 요청을 존중하지만그릇에 창부품이 담기면그릇의신축성이 우선시 된다.

그릇()에 대한 높이와 너비설정은 무시되며그릇의 크기는 가능하면 밀접하게창부품을 둘러싸도록 조정된다.

 

실제로 그릇()에 창부품이담기게 되면 그릇()의 크기를 제어할수 없다.

제어할수 있는것은 전체루트창의 최초크기이며창관리자의 "geometry"옵션으로 제어한다.

 

아래 예제를 본후 이어서 설명하도록 하겠다.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# -*- coding : cp949 -*-

from tkinter import *

 

class App:

    def __init__(self, root, use_geometry, show_buttons):

        fm=Frame(root, width=300, height=200, bg="blue")

        fm.pack(side=TOP, expand=NO, fill=NONE)

       

        if use_geometry:

            root.geometry("600x400")

       

        if show_buttons:

            Button(fm, text="Button1",width=10).pack(side=LEFT)

            Button(fm, text="Button2",width=10).pack(side=LEFT)

            Button(fm, text="Button3",width=10).pack(side=LEFT)

 

case=0

for use_geometry in (0,1):

    for show_buttons in (0,1):

        case = case + 1

        root=Tk()

        root.wm_title("Case " + str(case)) #창의 제목

        display=App(root, use_geometry, show_buttons)

        root.mainloop()

위 예제는 창이 총 4개가 발생하며,

첫번째 창을 닫으면 두번째 창이 열리는 방식이다.

첫번째 창


Case1 은 틀 안에 아무부품이 없고높이와 너비가 지정된 경우를보여준다.

 

두번째 창


Case2 Case1의 틀 안에 버튼창부품 3개를 집어넣을을때 어떻게 변화되는지 보여주기 위함이다.

파란색 틀이 보여지지 버튼창부품의 크기에 맞춰져서 틀의 크기가 무시된것을 알수 있다.

 

세번째 창


Case3 geometry옵션을 사용하여 창의 크기를 전체적으로 제어한상태에서 빈틀을 보여주는것이다.

전체적인 창의 크기는 600x400이며 파란색 틀의 크기는 300x200이다.

따라서 전체적인창 안으로 틀이 보이는것이다.

 

네번째 창


Case4 Case2와 마찬가지로Case3에서 보여진 틀 안에 버튼3개를 집어넣은 경우이다.

위와 마찬가지로틀의 크기지정은 무시되고버튼의 크기에 맞춰 틀의 사이즈가 변화된것을 알수 있다.

 

 

참조 : http://coreapython.hosting.paran.com/GUI/Thinking%20in%20Tkinter.htm

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함