#트론 #TRX #SUN #썬
#상단메뉴만들기 #Menu
본문 끝에 전체 코드를 올려 놓았으니 필요하시면 참고하세요 ^^
1. 상단 메뉴 만들기
아래 이미지와 같이 상단 메뉴 탭을 적용할 수 있는 방법 입니다.
아래 코드 드립니다.
from tkinter import *
import tkinter as tk
import tkinter.ttk
notebook=tkinter.ttk.Notebook(window, width=800, height=500)
notebook.pack()
tab1=tkinter.Frame(window)
notebook.add(tab1, text="TAB1")
tab2=tkinter.Frame(window)
notebook.add(tab2, text="TAB2")
tab3=tkinter.Frame(window)
notebook.add(tab3, text="TAB3")
label1=tkinter.Label(tab1, text="TAB1")
label1.pack()
label2=tkinter.Label(tab2, text="TAB2")
label2.pack()
label3=tkinter.Label(tab3, text="TAB3")
label3.pack()
1) menubar = Menu(window) 의 window 위치에 적용하실 윈도우 이름을 입력하셔야 합니다.
2) Menu라는 기능으로 생성되며 순차적으로 여러 메뉴를 추가하서 이용하실 수 있습니다.
3) Separator 를 통해 기능들의 경계를 표시할 수 있습니다.
4) command = 함수이름 입력하여 사용하실 수 있어요.
2. 탭 적용하기
#Notebook #탭메뉴 #탭만들기
아래 이미지와 같이 탭을 추가하여 이용하는 방법입니다.
코드도 같이 드립니다.
from tkinter import *
import tkinter as tk
import tkinter.ttk
notebook=tkinter.ttk.Notebook(window, width=800, height=500)
notebook.pack()
tab1=tkinter.Frame(window)
notebook.add(tab1, text="TAB1")
tab2=tkinter.Frame(window)
notebook.add(tab2, text="TAB2")
tab3=tkinter.Frame(window)
notebook.add(tab3, text="TAB3")
label1=tkinter.Label(tab1, text="TAB1")
label1.pack()
label2=tkinter.Label(tab2, text="TAB2")
label2.pack()
label3=tkinter.Label(tab3, text="TAB3")
label3.pack()
import tkinter.ttk
ttk기능을 불러와야 탭 기능인 Notebook을 이용할 수 있습니다.
위에 상단 메뉴(Menu)와 같이 pack 포지셔닝이 적용되도록하여
순차적으로 탭이 자리하게 됩니다.
여기서는 tab1,2,3 세 개를 생성하였습니다.
위젯을 탭에 위치하기 위해서는 window 이름 들어가는 자리에 탭이름을 입력하시면 됩니다.
그리고 tkinter는 작성 되는 순서에 따라서 위치의 우선 순위가 결정되니 유의하셔야 합니다.
위 이미지에서는 유튜브 이미지가 탭보다 아래 작성되어 탭 위로 올라가있는 상황입니다.
그럼 이전에 작성한 위젯을 탭에 적절하게 위치시켜 보도록 하겠습니다.
탭2에 이전까지 작성한 위젯을 모두 몰아 주었습니다.
탭1에는 주식, 코인 시세를 불러오도록 작성해 보려고 합니다.
계획은 아래처럼 시세가 나오고 라벨에 커서 이동 시 차트가 나오도록 하는 건데요.. 열심히 만들어 봐야죠 ^^
다음 업데이트에서 계속 ~
아래 전체 코드 드립니다.
from tkinter import *
import tkinter as tk
import tkinter.ttk
import os
from collections import Counter
window = Tk()
window.title("Naver Store management program")
#################################################
notebook=tkinter.ttk.Notebook(window, width=800, height=500)
notebook.pack()
tab1=tkinter.Frame(window)
notebook.add(tab1, text=" Trading ")
tab2=tkinter.Frame(window)
notebook.add(tab2, text="Gomming")
tab3=tkinter.Frame(window)
notebook.add(tab3, text=" ??? ")
#################################################
def donothing():
filewin = Toplevel(window)
button = Button(filewin, text="Do nothing button")
button.pack()
menubar = Menu(window)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=window.quit)
menubar.add_cascade(label="File", menu=filemenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=donothing)
helpmenu.add_command(label="About...", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)
###################################################
def closing(event):
window.destroy()
os.system('C:\\gom\\python gom_gui.py')
lb_hi = Label(tab2, text="Reboot", bg='gray19', fg='gray60',width=10, height=3)
lb_hi.bind('<Button-1>',closing)
lb_hi.place(x=10,y=10)
entry = tk.Entry(tab2,fg="gray19", bg="snow", width=20)
blog='blog.naver.com/xenostep'
entry.insert(0,blog)
entry.place(x=10,y=80)
entry1 = tk.Entry(tab2,fg="gray19", bg="snow", width=20)
entry1.insert(0, entry.get().split("/")[1])
entry1.place(x=10,y=100)
def cus():
cus_list = []
with open('C:\\gom\\gom.txt') as cus:
for line in cus:
cus_list.append(line)
cus_list = cus_list[2:]
for i in range(len(cus_list)):
cus_all.insert(INSERT, cus_list[i])
cus_all1.insert(INSERT, '\n'+Counter(cus_list).most_common(1)[0][0])
def clear():
cus_all.delete(0.0,10.0)
cus_all1.delete(0.0,3.0)
cus_all = tk.Text(tab2, width=20, height=10)
cus_all.place(x=200, y=100)
cus_all1 = tk.Text(tab2, width=20, height=3)
cus_all1.place(x=400, y=100)
load_bt = tk.Button(tab2, text='Load', bg='gray19', fg='snow', width=10, command=cus)
load_bt.place(x=300, y=400)
clear_bt = tk.Button(tab2, text='Clear', bg='royalblue', fg='snow', width=7, command=clear)
clear_bt.place(x=385, y=400)
save_bt = tk.Button(tab2, text='Save', bg='gray19', fg='snow', width=10)
save_bt.place(x=450, y=400)
lb_hi = Label(tab2, text="->",fg='gray19')
lb_hi.place(x=360,y=110)
def new_win(event):
nw=Tk()
nw.title("Select video")
def closer(event):
nw.destroy()
nw.bind("<Escape>", closer)
nw.geometry('300x300+300+100')
nw.mainloop()
def scaled(event):
img_lb.configure(image=img_big)
img_lb.place(x=330, y=270)
def Re(event):
img_lb.config(image=img)
img_lb.place(x=360, y=300)
WDIR = "C:/gom"
img_name = "home.png"
img_name_s = "home_scale.png"
image_path = os.path.join(WDIR, img_name)
image_s_path = os.path.join(WDIR, img_name_s)
img = PhotoImage(file=image_s_path)
img_big = PhotoImage(file=image_path)
img_lb = tk.Label(tab2, image=img)
img_lb.bind("<Button-1>", new_win)
img_lb.bind("<Enter>", scaled)
img_lb.bind("<Leave>", Re)
img_lb.place(x=360, y=300)
window.config(menu=menubar)
window.geometry('800x500+300+100')
window.mainloop()
'파이썬 팁' 카테고리의 다른 글
파이썬] TKinter GUI 만들기 4화 - 메뉴 탭, 상단 메뉴 만들기 - Menu, Notebook (0) | 2020.09.28 |
---|---|
파이썬 - 거북이로 그림을 그리는 Turtle 모듈 소개 (0) | 2020.09.27 |
파이썬] 예외처리 방법 예시 - try except (0) | 2020.09.26 |
파이썬으로 게임을 만들 수 있다고? pygame 1탄: pygame 설치 및 기본기능 알아보기 (0) | 2020.09.26 |
비주얼스튜디오 코드(vscode) 다중 블럭 들여쓰기, 내어쓰기 단축키 (3) | 2020.09.26 |