방금 Python (3.2.2)에서 tkinter를 사용하는 방법을 배웠고 그리드 관리자를 사용하여 문제가 발생했습니다. 예를 들어, button.grid (sticky = SE)를 넣으면 버튼이 오른쪽 아래에 놓이지 않고 고정 값을 무시하고 왼쪽 상단에 놓입니다. 여기서 내가 뭘 잘못하고 있니? 나는 그것을 찾으려고 노력했지만, 내가 잘못하고있는 것을 정말로 발견 할 수 없었다.파이썬 tkinter 그리드 매니저?
3
A
답변
4
버튼이 포함 된 위젯의 최소 크기를 설정해야 할 수도 있습니다. 그렇지 않으면 컨테이너 위젯이 축소되어 버튼을 표시하는 데 필요한 공간 만 차지할 수 있습니다. 그렇다면 컨테이너 위젯은 차이점을 표시 할 공간이 없으므로 sticky 옵션은 의미가 없습니다. 용기 위젯으로서 tk.Frame
등을 사용
:
import Tkinter as tk
class SimpleApp(object):
def __init__(self, master, **kwargs):
title = kwargs.pop('title')
frame = tk.Frame(master, borderwidth=5, bg = 'cyan', **kwargs)
frame.grid()
button = tk.Button(frame, text = title)
button.grid(sticky = tk.SE)
frame.rowconfigure('all', minsize = 200)
frame.columnconfigure('all', minsize = 200)
def basic():
root = tk.Tk()
app = SimpleApp(root, title = 'Hello, world')
root.mainloop()
basic()
는
PS를 산출한다. 나는이를 테스트 할 수 Python3.2에 설치 Tkinter를이없는,하지만 난 단 하나의 변화는 Python3.2이 작품은
import tkinter as tk
대신
import Tkinter as tk
이다 만들 필요가 있다고 생각
1
"내가 뭘 잘못하고 있니?"라고 말하면 코드를 게시해야합니다. 그렇지 않으면 무엇이 잘못되었는지 추측 할 수 있습니다.
다음 작업은 격자 셀의 오른쪽 아래 모서리 (SE)에 단추를 배치하여 정상적으로 작동합니다. 기본값은 왼쪽 위 (NW)가 아닌 가운데입니다.
from tkinter import Button, Label, Entry, Tk, SE
root = Tk()
Label(text="Lots o' Stuff", width=30, height=15,
borderwidth=2, relief="raised").grid(rowspan=2)
Entry().grid(row=0, column=2)
Button(text="Hit Me").grid(row=1, column=2, sticky=SE)
root.mainloop()
유용한 답변을 얻으려면 반드시 투표하고 수락하십시오. – Dave