728x90
반응형
Phython에서 Window 창을 띄우려면 tkinter 가 필요한데, 우분투에서는 띄워지지 않는 것 같다.
Windows에서도 Phython IDLE에서만 작동을 한다.
윈도를 띄우는 것은 아내와 같다.
from tkinter import *
window = Tk()
window.title("윈도우창 연습") # 윈도우 캡션 지정
window.geometry("400x100") # 윈도우 크기 지정
window.resizable(width=FALSE, height=FALSE) # 윈도우 크기 변경 금지
window.mainloop()
라벨을 추가해보자.
from tkinter import *
window = Tk()
window.title("윈도우창 연습")
window.geometry("400x100")
window.resizable(width=FALSE, height=FALSE)
#Label(부모윈도, 옵션 ...)
label1 = Label(window, text="This is MySQL을")
# fg : foreground (글자색)
label2 = Label(window, text="열심히", font=("궁서체", 30), fg="blue")
# bg : background (배경색)
# anchor : 위젯의 위치 ( N, E, W, S 를 이용하여 만듬 NE, NW, E, SE, ... , CENTER)
label3 = Label(window, text="공부 중입니다.", bg="magenta", width=20, height=5, anchor=SE)
label1.pack()
label2.pack()
label3.pack()
window.mainloop()
버튼을 만들어보자.
from tkinter import *
from tkinter import messagebox
def clickButton() :
messagebox.showinfo('버튼 클릭', '버튼을 클릭했습니다.')
window = Tk()
window.geometry("200x200")
window.resizable(width=FALSE, height=FALSE)
# Button의 스타일과 버튼 클릭 시 실행되는 함수(clickButton)를 지정하였다.
button1 = Button(window, text="요기 눌러요", fg="red", bg="yellow", command=clickButton)
button1.pack(expand=1)
window.mainloop()
위젯 정렬은 pack() 함수의 옵션 중에서 수평으로 정렬하는 방법은 side=LEFT, RIGHT 방식이 있다.
from tkinter import *
window = Tk()
button1 = Button(window, text="버튼1")
button2 = Button(window, text="버튼2")
button3 = Button(window, text="버튼3")
#side=LEFT는 왼쪽부터 채워나가라는 옵션이다.
button1.pack(side=LEFT)
button2.pack(side=LEFT)
button3.pack(side=LEFT)
window.mainloop()
상기의 Sample은 side=LEFT 옵션을 사용하였다. 오른쪽부터 채워가는 예제로 리스트와 for문을 사용해보자.
from tkinter import *
window = Tk()
btnList = [None] * 3
for i in range(0, 3) :
btnList[i] = Button(window, text="버튼"+str(i+1))
#side=RIGHT는 오른쪽부터 채워나가라는 옵션이다.
for btn in btnList :
btn.pack(sid=RIGHT)
window.mainloop()
상기 예제에서 pack() 함수의 옵션을 TOP 혹은 BOTTOM으로 변경하여 세로로 정렬하게 만들 수 있다.
더불어 padx, pady를 이용하여 위젯 사이에 여백을 줄 수도 있다.
# 상기 코드 생략
#side=TOP은 위부터 채우라는 것이고, padx, pady는 여백이다.
for btn in btnList :
btn.pack(sid=TOP, fill=X, padx=10, pady=10)
window.mainloop()
728x90
반응형
'Program Language > Python' 카테고리의 다른 글
[Python] MySQL 사용하기 (0) | 2021.08.30 |
---|---|
[Python] 캔버스 사용하기 (0) | 2021.08.30 |
[Python] 대화상자 사용하기 (0) | 2021.08.30 |
[Python] 메뉴 만들기 (0) | 2021.08.30 |
[Python] 프레임, 에디터박스, 리스트박스 만들기 (0) | 2021.08.30 |