logo

파이썬 Tkinter

Python은 GUI(그래픽 사용자 인터페이스) 개발을 위한 다양한 옵션을 제공합니다. 모든 GUI 방법 중에서 tkinter가 가장 일반적으로 사용되는 방법입니다. Python과 함께 제공되는 Tk GUI 툴킷에 대한 표준 Python 인터페이스입니다. 파이썬 Tkinter GUI 응용 프로그램을 만드는 가장 빠르고 쉬운 방법입니다. Tkinter를 사용하여 GUI를 만드는 것은 쉬운 작업입니다.

내용의 테이블



Tkinter Python 앱을 만들려면 다음 기본 단계를 따르세요.

  1. tkinter 모듈 가져오기 : 이는 다른 모듈을 가져오는 것과 동일하게 수행됩니다. 파이썬 . Python 2.x에서는 모듈 이름이 'Tkinter'이고 Python 3.x에서는 'tkinter'입니다.
  2. 메인 윈도우(컨테이너) 생성 : 기본 창은 나중에 추가할 모든 GUI 요소에 대한 컨테이너 역할을 합니다.
  3. 기본 창에 위젯 추가 : 버튼, 라벨, 입력 필드 등과 같은 위젯을 메인 창에 추가하여 원하는 대로 인터페이스를 디자인할 수 있습니다.
  4. 위젯에 이벤트 트리거 적용 : 이벤트 트리거를 위젯에 연결하여 위젯이 사용자 상호 작용에 응답하는 방식을 정의할 수 있습니다.

첫 번째 Tkinter GUI 응용 프로그램 만들기

GUI로 Python 애플리케이션을 생성하는 동안 사용자가 기억해야 하는 두 가지 주요 방법이 있습니다.

메이크업 제품 이름

ㅋ()

메인 창을 생성하기 위해 tkinter는 'Tk(screenName=None, baseName=None, className='Tk', useTk=1)' 메소드를 제공합니다. 창 이름을 변경하려면 className을 원하는 이름으로 변경하면 됩니다. 애플리케이션의 기본 창을 만드는 데 사용되는 기본 코드는 다음과 같습니다.



메인루프()

애플리케이션을 실행할 준비가 되었을 때 사용되는 mainloop()이라는 이름의 메서드가 있습니다. mainloop()은 응용 프로그램을 실행하고, 이벤트가 발생할 때까지 기다리고, 창이 닫히지 않는 한 이벤트를 처리하는 데 사용되는 무한 루프입니다.

파이썬3
import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>

산출



img

Tkinter 위젯

tkinter 애플리케이션에 넣을 수 있는 위젯이 많이 있습니다. 주요 위젯 중 일부는 아래에 설명되어 있습니다.

1. 상표

코드에 따라 언제든지 업데이트할 수 있는 텍스트나 이미지를 넣을 수 있는 디스플레이 상자를 의미합니다. 일반적인 구문은 다음과 같습니다.

w=Label(master, option=value) master is the parameter used to represent the parent window.>
파이썬3
from tkinter import * root = Tk() w = Label(root, text='GeeksForGeeks.org!') w.pack() root.mainloop()>

산출

상표

2. 단추

애플리케이션에 버튼을 추가하려면 이 위젯이 사용됩니다. 일반적인 구문은 다음과 같습니다.

w=Button(master, option=value)>

master는 부모 창을 나타내는 데 사용되는 매개 변수입니다. 버튼의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다.파이썬3>

>
>

import tkinter as tk r = tk.Tk() r.title('Counting Seconds') button = tk.Button(r, text='Stop', width=25, command=r.destroy) button.pack() r.mainloop()>


산출


삼. 기입

사용자가 한 줄의 텍스트를 입력할 때 사용합니다. 여러 줄의 텍스트를 입력하려면 Text 위젯을 사용합니다. 일반적인 구문은 다음과 같습니다.

w=Entry(master, option=value)>

master는 부모 창을 나타내는 데 사용되는 매개 변수입니다. 위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * master = Tk() Label(master, text='First Name').grid(row=0) Label(master, text='Last Name').grid(row=1) e1 = Entry(master) e2 = Entry(master) e1.grid(row=0, column=1) e2.grid(row=1, column=1) mainloop()>

산출

토치 설치

4. 체크버튼

사용자에게 토글 버튼으로 여러 옵션을 표시하여 여러 옵션을 선택합니다. 일반적인 구문은 다음과 같습니다.

w = CheckButton(master, option=value)>

이 위젯의 ​​형식을 변경하는 데 사용되는 옵션이 많이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * master = Tk() var1 = IntVar() Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W) var2 = IntVar() Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W) mainloop()>

산출



5. 라디오 버튼

사용자에게 다중 선택 옵션을 제공하는 데 사용됩니다. 이는 사용자에게 여러 가지 옵션을 제공하며 사용자는 하나의 옵션을 선택해야 합니다. 일반적인 구문은 다음과 같습니다.

w = RadioButton(master, option=value)>

이 위젯의 ​​형식을 변경하는 데 사용되는 옵션이 많이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * root = Tk() v = IntVar() Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W) Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W) mainloop()>

산출

6. 리스트 박스

사용자가 원하는 수의 옵션을 수락할 수 있는 목록을 사용자에게 제공합니다. 일반적인 구문은 다음과 같습니다.

w = Listbox(master, option=value) master is the parameter used to represent the parent window.>

위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * top = Tk() Lb = Listbox(top) Lb.insert(1, 'Python') Lb.insert(2, 'Java') Lb.insert(3, 'C++') Lb.insert(4, 'Any other') Lb.pack() top.mainloop()>

산출


7. 스크롤 바

나열된 위젯을 구현하는 데 사용되는 슬라이드 컨트롤러를 나타냅니다. 일반적인 구문은 다음과 같습니다.

w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>

위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * root = Tk() scrollbar = Scrollbar(root) scrollbar.pack(side=RIGHT, fill=Y) mylist = Listbox(root, yscrollcommand=scrollbar.set) for line in range(100): mylist.insert(END, 'This is line number' + str(line)) mylist.pack(side=LEFT, fill=BOTH) scrollbar.config(command=mylist.yview) mainloop()>

산출

8. 메뉴

응용 프로그램에서 사용되는 모든 종류의 메뉴를 만드는 데 사용됩니다. 일반적인 구문은 다음과 같습니다.

w = Menu(master, option=value) master is the parameter used to represent the parent window.>

이 위젯의 ​​형식을 변경하는 데 사용되는 옵션이 많이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * root = Tk() menu = Menu(root) root.config(menu=menu) filemenu = Menu(menu) menu.add_cascade(label='File', menu=filemenu) filemenu.add_command(label='New') filemenu.add_command(label='Open...') filemenu.add_separator() filemenu.add_command(label='Exit', command=root.quit) helpmenu = Menu(menu) menu.add_cascade(label='Help', menu=helpmenu) helpmenu.add_command(label='About') mainloop()>

산출

9. 콤보 박스

콤보박스 위젯은 tkinter.ttk 모듈의 ttk.Combobox 클래스를 사용하여 생성됩니다. 콤보 상자의 값은 값 매개변수를 사용하여 지정됩니다. 기본값은 set 메소드를 사용하여 설정됩니다. 이벤트 핸들러 함수 on_select는 항목이 선택될 때마다 선택한 항목으로 레이블을 업데이트하는 바인딩 메서드를 사용하여 콤보박스에 바인딩됩니다.

파이썬3
import tkinter as tk from tkinter import ttk def on_select(event): selected_item = combo_box.get() label.config(text='Selected Item: ' + selected_item) root = tk.Tk() root.title('Combobox Example') # Create a label label = tk.Label(root, text='Selected Item: ') label.pack(pady=10) # Create a Combobox widget combo_box = ttk.Combobox(root, values=['Option 1', 'Option 2', 'Option 3']) combo_box.pack(pady=5) # Set default value combo_box.set('Option 1') # Bind event to selection combo_box.bind('<>', on_select) root.mainloop()>

산출

이미지 2

10. 규모

해당 스케일에서 값을 선택할 수 있는 그래픽 슬라이더를 제공하는 데 사용됩니다. 일반적인 구문은 다음과 같습니다.

w = Scale(master, option=value)master is the parameter used to represent the parent window.>

위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * master = Tk() w = Scale(master, from_=0, to=42) w.pack() w = Scale(master, from_=0, to=200, orient=HORIZONTAL) w.pack() mainloop()>

산출

열하나. 최상위레벨

이 위젯은 창 관리자에 의해 직접 제어됩니다. 작업하는 데 상위 창이 필요하지 않습니다. 일반적인 구문은 다음과 같습니다.

w = TopLevel(master, option=value)>

위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>

산출

12. 메시지

여러 줄로 구성된 편집 불가능한 텍스트를 나타냅니다. Label과 동일하게 작동합니다. 일반적인 구문은 다음과 같습니다.

w = Message(master, option=value) master is the parameter used to represent the parent window.>

위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>

산출

13. 메뉴버튼

항상 창에 표시되는 하향식 메뉴의 일부입니다. 모든 메뉴버튼에는 고유한 기능이 있습니다. 일반적인 구문은 다음과 같습니다.

w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>

위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * top = Tk() mb = Menubutton ( top, text = 'GfG') mb.grid() mb.menu = Menu ( mb, tearoff = 0 ) mb['menu'] = mb.menu cVar = IntVar() aVar = IntVar() mb.menu.add_checkbutton ( label ='Contact', variable = cVar ) mb.menu.add_checkbutton ( label = 'About', variable = aVar ) mb.pack() top.mainloop()>

산출

14. 진행 표시 줄

Progressbar 위젯과 진행을 시작하는 버튼이 있는 Tkinter 애플리케이션. 버튼을 클릭하면 진행률 표시줄이 짧은 기간 동안 최대 100%까지 채워져 완료하는 데 시간이 걸리는 작업을 시뮬레이션합니다.

피보나치 코드 자바
파이썬3
import tkinter as tk from tkinter import ttk import time def start_progress(): progress.start() # Simulate a task that takes time to complete for i in range(101): # Simulate some work time.sleep(0.05) progress['value'] = i # Update the GUI root.update_idletasks() progress.stop() root = tk.Tk() root.title('Progressbar Example') # Create a progressbar widget progress = ttk.Progressbar(root, orient='horizontal', length=300, mode='determinate') progress.pack(pady=20) # Button to start progress start_button = tk.Button(root, text='Start Progress', command=start_progress) start_button.pack(pady=10) root.mainloop()>

산출

진전

열 다섯. 스핀박스

'Entry' 위젯의 항목입니다. 여기서는 고정된 숫자 값을 선택하여 값을 입력할 수 있습니다. 일반적인 구문은 다음과 같습니다.

w = SpinBox(master, option=value)>

위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>

산출:

16. 텍스트

여러 줄의 문자를 편집하고 표시되어야 하는 방식으로 형식을 지정합니다. 일반적인 구문은 다음과 같습니다.

w =Text(master, option=value)>

텍스트 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>

산출

17. 캔버스

그림과 그래픽, 텍스트, 위젯과 같은 기타 복잡한 레이아웃을 그리는 데 사용됩니다. 일반적인 구문은 다음과 같습니다.

w = Canvas(master, option=value) master is the parameter used to represent the parent window.>

위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * master = Tk() w = Canvas(master, width=40, height=60) w.pack() canvas_height=20 canvas_width=200 y = int(canvas_height / 2) w.create_line(0, y, canvas_width, y ) mainloop()>

출력

18. 패닝된 창

배열된 창 수를 처리하는 데 사용되는 컨테이너 위젯입니다. 일반적인 구문은 다음과 같습니다.

자바의 데이터 유형
w = PannedWindow(master, option=value)>

Master는 상위 창을 나타내는 데 사용되는 매개 변수입니다. 위젯의 형식을 변경하는 데 사용되는 다양한 옵션이 있습니다. 옵션 수는 쉼표로 구분된 매개변수로 전달될 수 있습니다. 그 중 일부는 아래에 나열되어 있습니다.

파이썬3
from tkinter import * m1 = PanedWindow() m1.pack(fill=BOTH, expand=1) left = Entry(m1, bd=5) m1.add(left) m2 = PanedWindow(m1, orient=VERTICAL) m1.add(m2) top = Scale(m2, orient=HORIZONTAL) m2.add(top) mainloop()>

산출

Tkinter의 색상 옵션

이 예는 활성 배경 및 전경 색상, 배경 및 전경 색상, 비활성화 상태 색상 및 선택 색상을 포함하여 Tkinter 위젯의 다양한 색상 옵션의 사용법을 보여줍니다. 예제의 각 위젯은 다양한 색상 옵션을 보여주며 이러한 옵션이 위젯의 ​​모양에 어떤 영향을 미치는지 시각적으로 보여줍니다.

파이썬3
import tkinter as tk root = tk.Tk() root.title('Color Options in Tkinter') # Create a button with active background and foreground colors button = tk.Button(root, text='Click Me', activebackground='blue', activeforeground='white') button.pack() # Create a label with background and foreground colors label = tk.Label(root, text='Hello, Tkinter!', bg='lightgray', fg='black') label.pack() # Create an Entry widget with selection colors entry = tk.Entry(root, selectbackground='lightblue', selectforeground='black') entry.pack() root.mainloop()>

산출

2024-04-2516-50-47online-video-cuttercom-ezgifcom-video-to-gif-converter

글꼴 개선에 대해 자세히 알아보십시오. Tkinter 글꼴

기하학 관리

Tkinter는 또한 상위 창에서 위젯을 구성할 수 있는 위젯의 기하학적 구성에 대한 액세스를 제공합니다. 주로 세 가지 지오메트리 관리자 클래스 클래스가 있습니다.

팩() 메서드

상위 위젯에 배치하기 전에 위젯을 블록으로 구성합니다.

파이썬3
import tkinter as tk root = tk.Tk() root.title('Pack Example') # Create three buttons button1 = tk.Button(root, text='Button 1') button2 = tk.Button(root, text='Button 2') button3 = tk.Button(root, text='Button 3') # Pack the buttons vertically button1.pack() button2.pack() button3.pack() root.mainloop()>

산출


팩

그리드() 메서드

상위 위젯에 배치하기 전에 위젯을 그리드(테이블과 같은 구조)로 구성합니다.

파이썬3
import tkinter as tk root = tk.Tk() root.title('Grid Example') # Create three labels label1 = tk.Label(root, text='Label 1') label2 = tk.Label(root, text='Label 2') label3 = tk.Label(root, text='Label 3') # Grid the labels in a 2x2 grid label1.grid(row=0, column=0) label2.grid(row=0, column=1) label3.grid(row=1, column=0, columnspan=2) root.mainloop()>

산출

그리드

place() 메소드

프로그래머가 지시한 특정 위치에 위젯을 배치하여 구성합니다.

파이썬3
import tkinter as tk root = tk.Tk() root.title('Place Example') # Create a label label = tk.Label(root, text='Label') # Place the label at specific coordinates label.place(x=50, y=50) root.mainloop()>

산출

장소