Programing/Python

[Python]파이썬 tkinter 버튼,텍스트박스 만들기

쇼핑의왕루이 2022. 8. 18. 19:12

안녕하세요 루이입니다

이번 포스팅에는 tkinter로 만든 프로그램창에 버튼을 만들어볼게요

import tkinter

window = tkinter.Tk()

window.title("Test01")
window.geometry("640x400+100+100")
window.resizable(0, 0)

button = tkinter.Button(window, width=10)
button.pack()

window.mainloop()

이전 포스팅에 있던 코드에

button = tkinter.Button(window, width=10) 

button.pack() 이렇게 2줄만 추가해보았습니다

width=10은 넓이를 10으로 주는 변수이고

button = tkinter.Button(window, 매개변수1, 2, 3, 4) 괄호안에는 width처럼 버튼의 속성을 표시하게끔 매개변수들을 입력할수있습니다

실행하게되면 위처럼 결과가 나오게 됩니다

 

이번에는 Label로 글씨를 추가하여 grid를 사용해 글씨옆에 버튼이 생기게 해보겠습니다


Grid

Grid는 행(row)과 열(column)을 이용하여 한눈에 파악하기 쉽게 엑셀이나 표와같은 격자무늬 형태를 뜻하며

이미지나 텍스트,버튼 요소들을 배치할때 유용하게 활용됩니다

import tkinter

window = tkinter.Tk()

window.title("Test01")
window.geometry("640x400")
window.resizable(0, 0)

label = tkinter.Label(window, text="전송", width=15, height=2)
label.grid(row=0, column=0, padx=5, pady=10)

button = tkinter.Button(window, text="Send", width=15, height=2)
button.grid(row=0, column=1, padx=5, pady=10)

window.mainloop()

 

label = tkinter.Label(window, 설정값들)

label.grid(설정값)

gird를 입력하여 텍스트와 버튼을 나란히 배치해봅니다

실행하게되면 위처럼 결과가 나오게됩니다

 

이제 라벨과 버튼사이에 텍스트박스를 넣고 버튼을 클릭하면 라벨의 글씨가 바뀌는 함수를 적용해보려합니다

from tkinter import *
window = Tk()

window.title("Test01")
window.geometry("640x400")
window.resizable(0, 0)

def click():
    label.configure(text="전송됨")

label = Label(window, text="전송", width=15, height=2)
label.grid(row=0, column=0)

textbox = Entry(window, width=15)
textbox.grid(row=0, column=1, padx=10, pady=10)

button = Button(window, text="Send", width=15, height=2, command=click)
button.grid(row=0, column=2)

window.mainloop()

가운데에 함수를 이용하기위해 import부분부터 코드를 수정했습니다

import tkinter 와 from tkinter import * 차이는 import만 사용하면 모듈안의 함수를 사용할때

모듈명.함수명 이러한식으로 적용해야하고 from을 붙이면 바로 함수명을 적고 사용할수있게되서

함수를 사용할땐 편리성을 위해서 from으로 바꾸었습니다

 

def click() 클릭시 적용되는 함수를 적기위해 바꾸었다 생각하시면 됩니다

실행하게되면 위화면처럼 나오게되고

텍스트박스칸에 값을 입력하고 Send버튼을 누르면

Click함수때문에 전송글자가 전송됨글자로 바뀌는걸 볼수있습니다

그리고 텍스트박스(Entry)의 크기속성을 변경하기위해서는

ipadx, ipady로 크기를 조절할수있습니다

textbox = Entry(window, width=15)
textbox.grid(row=0, column=1, padx=10, pady=10,ipadx=10 ,ipady=10)

크기를 조절하게 되면 위처럼 결과가 나오네요