padx 값은 tkinter 프레임의 배열에 영향을 미치는 것 같습니다.

PS Solanki

따라서 아래 이미지를 살펴보십시오. tk 창

이 창에는 실제로 tk.Frame에서 상속 된 3 개의 프레임이 있습니다 (여기서는 차이가 없다고 생각합니다).

첫 번째 프레임은 3 개의 버튼이있는 상단에 있으며 프로그램의 후반부에 1 개가 더 추가됩니다. 두 번째 프레임은 3x3 레이아웃의 9 개 버튼으로 구성됩니다. 세 번째 프레임에는 레이블이 있습니다 (실제로 왼쪽에 하나씩, 오른쪽에 하나씩 두 개의 레이블이 필요합니다.)

내가 달성하고 싶은 것은 첫 번째 프레임을 그대로 유지하는 것입니다. 두 번째 프레임의 3x3 레이아웃은 중앙 (최소한 수평으로)에 있어야하고 레이블은 세 번째 프레임에 있어야하며 하나는 가장 왼쪽에 있고 다른 하나는 ( 아직 추가하지 않았습니다) 절대 권리.

I have observed that whenever I change the padx (and even ipadx) values for any button in first frame, it seems to change the position of that 3x3 layout. Like when I increase padx for Stats Button, it slides both the 3x3 layout and bottom most label to the right. Which i feel like is weird because padding of something in a whole different frame altogether should not affect the layout of any other frame.

HERE IS THE MINIMUM REPRODUCIBLE EXAMPLE TO MAKE YOU UNDERSTAND THE ISSUE MORE

import tkinter as tk

class MenuBar(tk.Frame):
    def __init__(self, root):
        tk.Frame.__init__(self, root)


class StBar(tk.Frame):
    def __init__(self, root):
        tk.Frame.__init__(self, root)


class MidSpace(tk.Frame):
    def __init__(self, root):
        tk.Frame.__init__(self, root)


class MainApp:
    def __init__(self, root):
        self.root = root
        self.StBar = StBar(self.root)
        self.MenuBar = MenuBar(self.root)
        self.MidSpace = MidSpace(self.root)

        self.root.grid_rowconfigure(0, weight=3)
        self.root.grid_rowconfigure(1, weight=55)
        self.root.grid_rowconfigure(2, weight=2)

        self.MenuBar.grid(row=0, column=0)
        self.MidSpace.grid(row=1, column=0)
        self.StBar.grid(row=2, column=0)

        self.htpb = tk.Button(self.MenuBar, text='How To Play', width=14,
                          bg='#00f', fg='#fff')
        self.htpb.grid(row=0, column=0, padx=10, ipady=5, sticky=tk.N + tk.S)

        self.statb = tk.Button(self.MenuBar, text='Stats', width=14,
                           bg='#00f', fg='#fff')
        self.statb.grid(row=0, column=1, padx=10, ipady=5, sticky=tk.N + tk.S)

        self.resb = tk.Button(self.MenuBar, text='Results', width=14,
                          bg='#00f', fg='#fff')
        self.resb.grid(row=0, column=2, padx=10, ipady=5, sticky=tk.N + tk.S)

        self.stLabel = tk.Label(self.StBar,
                            text='Some single line text here', bg='#00f',
                            fg='#fff', font=('roboto', 13))
        self.stLabel.pack(anchor=tk.W)

        self.b1 = tk.Button(self.MidSpace, text='  ',
                        bg='#da5', fg='#250038',
                        font=('roboto', 20), width=2, height=1)
        self.b2 = tk.Button(self.MidSpace, text='  ',
                        bg='#745', fg='#380601',
                        font=('roboto', 20), width=2, height=1)
        self.b3 = tk.Button(self.MidSpace, text='  ',
                        bg='#da5', fg='#250038',
                        font=('roboto', 20), width=2, height=1)
        self.b4 = tk.Button(self.MidSpace, text='  ',
                        bg='#745', fg='#380601',
                        font=('roboto', 20), width=2, height=1)
        self.b5 = tk.Button(self.MidSpace, text='  ',
                        bg='#da5', fg='#250038',
                        font=('roboto', 20), width=2, height=1)
        self.b6 = tk.Button(self.MidSpace, text='  ',
                        bg='#745', fg='#380601',
                        font=('roboto', 20), width=2, height=1)
        self.b7 = tk.Button(self.MidSpace, text='  ',
                        bg='#da5', fg='#250038',
                        font=('roboto', 20), width=2, height=1)
        self.b8 = tk.Button(self.MidSpace, text='  ',
                        bg='#745', fg='#380601',
                        font=('roboto', 20), width=2, height=1)
        self.b9 = tk.Button(self.MidSpace, text='  ',
                        bg='#da5', fg='#250038',
                        font=('roboto', 20), width=2, height=1)

        self.b1.grid(row=0, column=0, ipadx=40, ipady=40)
        self.b2.grid(row=0, column=1, ipadx=40, ipady=40)
        self.b3.grid(row=0, column=2, ipadx=40, ipady=40)
        self.b4.grid(row=1, column=0, ipadx=40, ipady=40)
        self.b5.grid(row=1, column=1, ipadx=40, ipady=40)
        self.b6.grid(row=1, column=2, ipadx=40, ipady=40)
        self.b7.grid(row=2, column=0, ipadx=40, ipady=40)
        self.b8.grid(row=2, column=1, ipadx=40, ipady=40)
        self.b9.grid(row=2, column=2, ipadx=40, ipady=40)

if __name__ == '__main__':
    win = tk.Tk()
    win.geometry('1360x710')
    win.title('TicTacToe - pssolanki')
    win.wm_geometry("+0+0")
    win.configure(bg='#fff')
    MainApp(win)
    win.mainloop()
    

If ya need to know anything else either let me know or check the code at Github Repository

Any help or suggestion is appreciated. You can also suggest a better title for the question 'cause I couldn't think of anything better.

Thank YOU :)

Bryan Oakley

그 이유는 세 프레임이 모두 단일 열에 있기 때문입니다. 열은 격자에서 균일 한 너비를 갖기 때문에 상단 프레임을 넓게 만들면 전체 열이 넓어지고 두 번째 및 세 번째 프레임이 나타나는 방식에 영향을줍니다.

내 조언은 pack세 개의 최상위 프레임에 사용하는 것입니다. 나는 MenuBar상단을 StBar따라, 하단을 따라, 그리고 MidSpace중간에 포장 할 것 입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

공백 : nowrap은 내부 요소 위치에 영향을 미치는 것 같습니다 : 절대

분류에서Dev

gdb가 $ eax에 저장된 함수 반환 값에 영향을 미치는 것 같습니다.

분류에서Dev

Alloy의 범위에 영향을 미치는 것은 무엇입니까?

분류에서Dev

Framerate ()가 영화에 영향을 미치지 않는 것 같습니다.

분류에서Dev

디코딩은 Python 소켓 스크립트에 영향을 미치지 않는 것 같습니다.

분류에서Dev

MySQL의 max_connections_per_hour 값에 영향을 미치는 것은 무엇입니까?

분류에서Dev

한 div의 마진이 전체 사이트에 영향을 미치는 것 같습니다.

분류에서Dev

WPToolkit : TiltEffect가 이미지에 영향을 미치지 않는 것 같습니다.

분류에서Dev

빈 의존성 배열로 React의 useEffect () 내에서 상태에 영향을 미치는 것 같지 않습니다. Socket.io

분류에서Dev

componentRestrictions가 AutocompleteService.getQueryPredictions에 영향을 미치지 않는 것 같습니다.

분류에서Dev

설치 속도에 영향을 미치는 것은 무엇입니까?

분류에서Dev

Chrome에서 사용자의 표시기 스타일에 영향을 미치는 것은 무엇입니까?

분류에서Dev

timeZone 값을 설정하는 것이 단일 인스턴스에 영향을 미치는 것이 아니라 전체 프로젝트에 영향을 미치는 이유는 무엇입니까?

분류에서Dev

pyspark는 상수 배열을 데이터 프레임에 열로 추가하는 것과 같습니다.

분류에서Dev

클래스 라이브러리에서 소스 코드를 변경해도 응용 프로그램에 영향을 미치지 않는 것 같습니다.

분류에서Dev

for 루프 내에서 문이 String [] 값에 영향을주지 않는 것 같음

분류에서Dev

SQL 쿼리가 동일한 수의 행에 영향을주지 않는 것 같습니다. count 문 추가

분류에서Dev

지정된 것 이외의 페이지의 다른 영역에 영향을 미치는 Javascript 기능

분류에서Dev

BX 레지스터에 값을 쓰는 것이 ES 레지스터에 영향을 미칩니 까?

분류에서Dev

Vue의 계산 된 속성이 다시 계산되는지 여부에 영향을 미치는 것은 무엇입니까?

분류에서Dev

Python tkinter : 콤보 박스에서 "textvariable"을 사용하는 것은 쓸모없는 것 같습니다.

분류에서Dev

레일의 루비 skip_before_action은 내 응용 프로그램에 영향을 미치지 않습니다.

분류에서Dev

Ruby 스레드에서 여러 시간 동안 수면을 취하는 것이 성능에 미치는 영향은 무엇입니까?

분류에서Dev

창과 버튼에 영향을 미치는 테마 요소를 제어하는 것은 무엇입니까?

분류에서Dev

Tkinter 부모 프레임이 Button 내부에서 축소되는 것 같습니다.

분류에서Dev

데이터 프레임 열의 값을 반복하는 것과 열의 데이터에 변수를 할당하는 것의 차이점은 무엇입니까?

분류에서Dev

Python의 데이터 프레임에서 스타일을 업데이트 할 수없는 것 같습니다.

분류에서Dev

한 통합 문서의 코드가 다른 통합 문서에 영향을 미치는 것을 방지

분류에서Dev

데이터 프레임의 행 값이 하위 문자열이거나 다른 데이터 프레임의 행 값에 포함 된 것을 기반으로 두 데이터 프레임을 결합하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    공백 : nowrap은 내부 요소 위치에 영향을 미치는 것 같습니다 : 절대

  2. 2

    gdb가 $ eax에 저장된 함수 반환 값에 영향을 미치는 것 같습니다.

  3. 3

    Alloy의 범위에 영향을 미치는 것은 무엇입니까?

  4. 4

    Framerate ()가 영화에 영향을 미치지 않는 것 같습니다.

  5. 5

    디코딩은 Python 소켓 스크립트에 영향을 미치지 않는 것 같습니다.

  6. 6

    MySQL의 max_connections_per_hour 값에 영향을 미치는 것은 무엇입니까?

  7. 7

    한 div의 마진이 전체 사이트에 영향을 미치는 것 같습니다.

  8. 8

    WPToolkit : TiltEffect가 이미지에 영향을 미치지 않는 것 같습니다.

  9. 9

    빈 의존성 배열로 React의 useEffect () 내에서 상태에 영향을 미치는 것 같지 않습니다. Socket.io

  10. 10

    componentRestrictions가 AutocompleteService.getQueryPredictions에 영향을 미치지 않는 것 같습니다.

  11. 11

    설치 속도에 영향을 미치는 것은 무엇입니까?

  12. 12

    Chrome에서 사용자의 표시기 스타일에 영향을 미치는 것은 무엇입니까?

  13. 13

    timeZone 값을 설정하는 것이 단일 인스턴스에 영향을 미치는 것이 아니라 전체 프로젝트에 영향을 미치는 이유는 무엇입니까?

  14. 14

    pyspark는 상수 배열을 데이터 프레임에 열로 추가하는 것과 같습니다.

  15. 15

    클래스 라이브러리에서 소스 코드를 변경해도 응용 프로그램에 영향을 미치지 않는 것 같습니다.

  16. 16

    for 루프 내에서 문이 String [] 값에 영향을주지 않는 것 같음

  17. 17

    SQL 쿼리가 동일한 수의 행에 영향을주지 않는 것 같습니다. count 문 추가

  18. 18

    지정된 것 이외의 페이지의 다른 영역에 영향을 미치는 Javascript 기능

  19. 19

    BX 레지스터에 값을 쓰는 것이 ES 레지스터에 영향을 미칩니 까?

  20. 20

    Vue의 계산 된 속성이 다시 계산되는지 여부에 영향을 미치는 것은 무엇입니까?

  21. 21

    Python tkinter : 콤보 박스에서 "textvariable"을 사용하는 것은 쓸모없는 것 같습니다.

  22. 22

    레일의 루비 skip_before_action은 내 응용 프로그램에 영향을 미치지 않습니다.

  23. 23

    Ruby 스레드에서 여러 시간 동안 수면을 취하는 것이 성능에 미치는 영향은 무엇입니까?

  24. 24

    창과 버튼에 영향을 미치는 테마 요소를 제어하는 것은 무엇입니까?

  25. 25

    Tkinter 부모 프레임이 Button 내부에서 축소되는 것 같습니다.

  26. 26

    데이터 프레임 열의 값을 반복하는 것과 열의 데이터에 변수를 할당하는 것의 차이점은 무엇입니까?

  27. 27

    Python의 데이터 프레임에서 스타일을 업데이트 할 수없는 것 같습니다.

  28. 28

    한 통합 문서의 코드가 다른 통합 문서에 영향을 미치는 것을 방지

  29. 29

    데이터 프레임의 행 값이 하위 문자열이거나 다른 데이터 프레임의 행 값에 포함 된 것을 기반으로 두 데이터 프레임을 결합하는 방법은 무엇입니까?

뜨겁다태그

보관