지난 포스트에서 레이블, 엔트리, 버튼을 만드는 방법을 설명하였습니다. 지난 포스트는 아래 링크를 참고하시기 바랍니다.
tkinter - 레이블, 엔트리, 버튼 만들기
이번 포스트는 Label, Entry, Button을 배치하는 방법을 다뤄 보도록 하겠습니다.
from tkinter import *
win = Tk()
win.title('password')
win.geometry('250x100')
win.mainloop()
위와 같이 코드를 입력하여 창을 만들어 줍니다.
이렇게 창이 만들어 집니다. 보시면 아시겠지만, 비밀번호를 입력하는 창을 tkinter를 사용하여 만들려고 합니다.
우선 레이블 부터 배치 하도록 하겠습니다.
lbl_name = Label(win, text='User Name')
lbl_pw = Label(win, text='Password')
lbl_name.grid(row=0, column=0, sticky=W)#레이블에서 텍스트 위치를 왼쪽으로 정렬, 오른쪽이면 'E'
lbl_pw.grid(row=1, column=0, sticky=W)
레이블은 이름을 적는란과 Password를 적는 란을 표시하였습니다.
'grid'라는 속성을 사용해서 행과 열을 지정해줍니다. (row=0, column=0) 이면, UI 창에서 맨 왼쪽 위에 표시가 됩니다.
'sticky=W' 라는 옵션은 레이블에서 텍스트 위치를 왼쪽(West)로 붙여라는 얘기 입니다. 오른쪽으로 붙이고자 하면 'sticky=E' 라고 옵션을 사용하면 됩니다.
ent_name = Entry(win)
ent_pw = Entry(win)
ent_name.grid(row=0, column=1)
ent_pw.grid(row=1, column=1)
'Entry'는 글자를 입력할 수 있는 항목입니다.
Entry도 'grid'속성을 사용해서 각각 배치합니다.
어설프지만 그나마 제대로 된 모양이 나온 것 같습니다.
lbl_btn = Label(win)
lbl_btn.grid(row=2, column=0, columnspan=2) #컬럼 2개를 병합
btn_ok = Button(lbl_btn, text='OK')
btn_cancel = Button(lbl_btn, text='Cancel')
btn_ok.grid(row=0, column=0, padx = 10)#x축 방향으로 외부여백을 10으로 설정
btn_cancel.grid(row=0, column=1, padx = 10)
마지막으로 레이블과 버튼을 배치해 보겠습니다.
'grid' 속성에서 'columnspan=2'라는 옵션을 적으면 컬럼 2개가 병합됩니다.
그리고 'grid' 속성에서 'padx = 10' 옵션을 사용하면 x축 방향으로 외부 여백이 10으로 설정됩니다. 이 옵션을 사용하지 않으면, 'ok' 버튼과 'cancel' 버튼이 붙어서 표시 됩니다.
위의 그림과 같이 잘 만들어진 것을 확인할 수 있습니다.
전체 코드는 아래와 같으니 참고하시기 바랍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
from tkinter import *
win = Tk()
win.title('password')
win.geometry('250x100')
lbl_name = Label(win, text='User Name')
lbl_pw = Label(win, text='Password')
lbl_name.grid(row=0, column=0, sticky=W)
lbl_pw.grid(row=1, column=0, sticky=W)
ent_name = Entry(win)
ent_pw = Entry(win)
ent_name.grid(row=0, column=1)
ent_pw.grid(row=1, column=1)
lbl_btn = Label(win)
lbl_btn.grid(row=2, column=0, columnspan=2)
btn_ok = Button(lbl_btn, text='OK')
btn_cancel = Button(lbl_btn, text='Cancel')
btn_ok.grid(row=0, column=0, padx = 10)
btn_cancel.grid(row=0, column=1, padx = 10)
win.mainloop()
|
cs |
'파이썬(Python) > 파이썬 GUI(PyQt5 & tkinter)' 카테고리의 다른 글
tkinter - 섭씨 온도를 화씨온도로 변환하는 프로그램 만들기 (0) | 2021.10.12 |
---|---|
tkinter - 이벤트 설정하기 (0) | 2021.10.10 |
tkinter - 레이블, 엔트리, 버튼 만들기 (0) | 2021.10.06 |
tkinter - 윈도우 창 만들기 (0) | 2021.10.02 |
PyQt5 - (Qt designer) QFileDialog 를 이용하여 여러파일 이름 출력 (0) | 2020.12.17 |
댓글