본문 바로가기
PROGRAMING📚/Python📑

Python - tkinter

Ta이니 2024. 11. 28.
728x90
반응형

tkinter를 사용한 Window 화면 띄우기

💡

tkiner 사용하기 위한 선언

import tkinter

from tkinter import *

창 만들기

window = Tk()
window.title("MyWindow")
window.geometry("400x400-300+300")
window.config(bg='skyblue')
window.resizable(1, True)

window.mainloop()

버튼 만들기

# pack 상대 위치 , top, bottom, left, right, side 없으면 center

btnConfirm = Button(window, text="Confirm", relief="solid"
                  , overrelief='groove', anchor='n')
btnConfirm.pack(side='right', fill='y')

#text-inputFild
enter = Entry(window)
enter.pack()
btnConfirm = Button(window, text="Confirm", relief="solid"
                  , overrelief='groove', anchor='n')
btnConfirm.pack(side='left', fill='y')

#text-inputFild
enter = Entry(window)
enter.pack()
btnConfirm = Button(window, text="Confirm", relief="solid"
                  , overrelief='groove', anchor='n')
btnConfirm.pack()

pack() 안에 아무것도 없으면 가운데 정렬됨

btnConfirm = Button(window, text="Confirm", relief="solid"
                  , overrelief='groove', anchor='n')
btnConfirm.pack(padx=50,pady=50, side='left')

padx=50,pady=50 padding 값 적용하기

GridLayout

import tkinter.font
# 폰트 변경하기
font = tkinter.font.Font(font='맑은 고딕', size =15)
from tkinter import *

btn1 = tkinter.Button(window, text="1", width=6)
btn2 = tkinter.Button(window, text="2", width=6)
btn3 = tkinter.Button(window, text="3", width=6)
btn4 = tkinter.Button(window, text="4", width=6)
btn5 = tkinter.Button(window, text="5", width=6)
btn6 = tkinter.Button(window, text="6", width=6)
btn7 = tkinter.Button(window, text="7", width=6)
btn8 = tkinter.Button(window, text="8", width=6)
btn9 = tkinter.Button(window, text="9", width=6)

btn1.grid(row=3, column=1, padx=10, pady=10)
btn2.grid(row=3, column=2, padx=10, pady=10)
btn3.grid(row=3, column=3, padx=10, pady=10)
btn4.grid(row=2, column=1, padx=10, pady=10)
btn5.grid(row=2, column=2, padx=10, pady=10)
btn6.grid(row=2, column=3, padx=10, pady=10)
btn7.grid(row=1, column=1, padx=10, pady=10)
btn8.grid(row=1, column=2, padx=10, pady=10)
btn9.grid(row=1, column=3, padx=10, pady=10)

window.mainloop()

Absolute Layout

#place() 절대 위치에 컴포넌트를 배치 할 수 있는 레이아웃

import tkinter
import tkinter.ttk as ttk
import tkinter.font
from tkinter import *
from tkinter import messagebox

window = Tk()
window.title("MyWindow Absolute")
window.geometry('250x120')
# window.config(bg="light gray")
window.resizable(1, True)
font = tkinter.font.Font(family="맑은 고딕", size=12)

#place() 절대 위치에 컴포넌트를 배치 할 수 있다.
lbId = tkinter.Label(window, text="ID", font=font)
lbPass = tkinter.Label(window, text="Pass", font=font)
entryId = tkinter.Entry(window, relief="solid", borderwidth=1, font=font)
entryPass = tkinter.Entry(window, relief="solid", borderwidth=1, font=font, show="*")

lbId.place(x=10, y=8)
entryId.place(x=50, y=10)
lbPass.place(x=10, y=38)
entryPass.place(x=50, y=40)

entryId.focus()
window.mainloop()
  • window: 버튼이 속할 부모 위젯(일반적으로 창).
  • text="Login": 버튼에 표시될 텍스트는 "Login"입니다.
  • relief="solid": 버튼의 테두리 스타일을 설정합니다. 여기서는 "solid"(실선 테두리)로 지정되어 있습니다.
  • width="10": 버튼의 너비를 10으로 설정합니다.
  • overrelief='groove': 마우스가 버튼 위에 있을 때 테두리 스타일을 'groove'(홈이 파인 것처럼 보이는 스타일)로 변경합니다.
  • anchor='n': 버튼의 텍스트 정렬을 지정합니다. 여기서 'n'(north)이므로 텍스트가 위쪽에 정렬됩니다.
  • command=check_login: 버튼을 클릭했을 때 실행될 함수로 check_login 메서드가 호출됩니다.
from tkinter import messagebox

def check_login():
  if str(entryId.get()) == "":
    messagebox.showinfo("알림", "ID를 확인하여 주세요")
    entryId.focus()
    return

  if str(entryPass.get()) == "":
    messagebox.showinfo("알림", "Password를 확인하여 주세요")
    entryPass.focus()
    return

btnLogin = Button(window, text="Login", width="10",
              overrelief="groove", anchor="n", command=check_login)
btnLogin.place(x=30, y=80)

btnJoin = Button(window, text="Join", width="10",
              overrelief="groove", anchor="n")
btnJoin.place(x=130, y=80)
728x90
반응형

'PROGRAMING📚 > Python📑' 카테고리의 다른 글

python - windowLocationInfo  (2) 2024.11.29
Excel 이용해서 파일 불러오기  (1) 2024.11.28
Python -dict  (0) 2024.11.27
Python-Set  (0) 2024.11.26
[Python]Tuple  (0) 2024.11.25

댓글