Tkinter GUI 라이브러리를 사용하여 Python에서 데스크탑 앱 만들기 시작

Tkinter GUI 라이브러리를 사용하여 Python에서 데스크탑 앱 만들기 시작

Tkinter는 데스크톱 앱을 만드는 데 Python의 힘을 탐구하려는 경우 시도해야 하는 그래픽 사용자 인터페이스(GUI) 툴킷입니다.





여기서는 Tkinter GUI 모듈의 기본 사항을 살펴봅니다.





마이크를 컴퓨터에 연결하는 방법

Tkinter 설정

일반적으로 설치할 필요가 없습니다. 티킨터 Python 3부터 최신 버전의 Python을 설치한 경우 별도로. 라이브러리는 이전 Python 버전에서 작동하지 않을 수 있습니다. 이것은 Mac 및 Linux 사용자에게 일반적인 문제입니다. 이러한 OS는 일반적으로 기본적으로 이전 버전의 Python과 함께 제공되기 때문입니다.





일반적으로 사용하려면 티킨터 모듈을 사용하려면 공식 사이트에서 최신 호환 Python 버전을 PC에 다운로드하여 설치해야 합니다. python.org 웹사이트.

Mac을 사용하는 경우 또는 최신 버전의 ActiveTcl을 다운로드할 수 있습니다. 티킨터 컴파일러 활성 상태 .



Tkinter를 사용하는 방법

Tkinter는 내장에 의존합니다. TK 수업. 그리고 GUI 내의 모든 이벤트를 메인 루프 . 그래서 메인 루프 래퍼는 당신의 티킨터 코드 실행 가능.

시작하려면 티킨터 :





from tkinter import Tk
Tk().mainloop()

위의 코드를 실행하면 빈 공간이 나옵니다. 티킨터 액자.

그러나 Tkinter의 사용자 정의 기능은 내장 위젯에 있습니다.





이러한 위젯을 사용하려면 다음에서 가져올 수 있습니다. 티킨터 교체하여 tkinter import Tk에서 와 함께:

from tkinter import *
t = Tk()
t.mainloop()

를 사용하여 창 크기를 조정할 수도 있습니다. 기하학 기능을 사용하고 다음을 사용하여 제목을 지정합니다. 제목 위젯 티킨터 :

t = Tk()
t.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()

Tkinter 레이블 위젯

Tkinter를 사용하면 GUI에 일반 텍스트를 직접 작성할 수 있습니다. 상표 위젯:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial').grid()
t.mainloop()

NS 그리드() 그러나 방법은 팩() 방법. 위젯을 GUI에 고정하여 표시되도록 합니다.

당신은 또한 당신의 글꼴을 지정할 수 있습니다 상표 텍스트:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()

Tkinter에서 버튼 위젯으로 작업하기

버튼은 에서 가장 많이 사용되는 위젯 중 일부입니다. 티킨터 . 또한 다양한 내장 버튼 위젯을 사용하여 이러한 클릭 가능한 버튼을 GUI에 추가할 수 있습니다.

다음은 GUI를 사용하여 기본 버튼을 추가하는 방법입니다. 단추 위젯:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

NS bg 그리고 fg 키워드는 각각 버튼의 배경색과 그 안에 있는 텍스트의 색상을 설명합니다.

다음을 포함하여 버튼의 크기를 조정할 수도 있습니다. 그리고 너비 매개변수:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white', , ).grid()
t.mainloop()

이에 대한 출력은 다음과 같습니다.

사람이 모르게 스냅챗에서 스크린샷을 찍는 방법

버튼을 시각적으로 더 매력적으로 만들고 싶다면 다음을 포함할 수 있습니다. 안도 키워드를 클릭한 다음 테두리 너비를 조정합니다.

t = Tk()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

그리고 그것은 다음과 같이 보입니다.

바꾸다 높은 ~와 함께 평평한 어떻게 되는지 보기 위해.

원하는 만큼 버튼을 추가할 수 있습니다. 그러나 콘텐츠가 겹치지 않도록 주의해야 합니다.

겹침을 방지하기 위해 각 버튼의 행과 열 위치를 지정할 수 있습니다.

t = Tk()
Button(t, text=1, bg='black', fg='white').grid(row=1, column=1)
Button(t, text=2, bg='black', fg='white').grid(row=2, column=1)
Button(t, text=3, bg='black', fg='white').grid(row=3, column=1)
Button(t, text=4, bg='black', fg='white').grid(row=4, column=1)
t.mainloop()

선택 사항 명령 그러나 키워드는 이벤트를 단추 위젯. 본질적으로 버튼을 클릭할 때 특정 이벤트를 처리하는 선택적 기능을 고정합니다.

예를 들어 아래 코드는 클릭할 때 각 버튼의 값에 6을 곱합니다. 그리고 미리 정의된 함수를 기반으로 합니다.

def buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = 'black', fg = 'white', width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()

위의 코드에서, 버튼 누름 곱셈 이벤트를 처리합니다. NS 단추 그런 다음 위젯은 익명을 사용하여 해당 이벤트 핸들러를 가리킵니다. 람다 기능.

그리고 걱정된다면 패드 키워드를 사용하면 행에서 각 버튼을 뚜렷하게 구분합니다. 이것을 대체 패드 열에서 버튼을 분리합니다. 그리고 두 키워드를 동시에 사용하여 원하는 대로 두 축에 걸쳐 버튼을 분리할 수 있습니다.

즉, 이전 코드에서와 같이 모든 버튼에 대해 휠을 재발명하고 싶지는 않습니다. 이것은 실행 시간을 늦추고 코드를 읽기 어렵게 만들고 범위를 좁힙니다.

하지만 당신은 할 수 있습니다 for 루프를 사용 이 반복을 피하기 위해.

위 코드의 더 짧고 더 나은 버전은 다음과 같습니다.

def buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = 'black', fg = 'white', width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()

의 힘을 더 탐구해 보자. ~을위한 GUI에 메뉴 버튼을 추가하는 루프:

from tkinter import *
t = Tk()
buttons = ['Files', 'Dashboard', 'Menu', 'Settings', 'Help']
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:

Menubutton(t, text=buttons[m], bg='blue', fg='white').grid(row=5, column=i)
m += 1
t.mainloop()

GUI에 확인 버튼을 추가하는 것도 매우 쉽습니다.

t = Tk()
Checkbutton(t, text = 'Select option').grid()
t.mainloop()

다음을 사용하여 해당 체크 버튼을 자유롭게 곱하세요. ~을위한 루프, 우리가 이전에 했던 것처럼.

Tkinter의 메뉴 위젯으로 드롭다운 메뉴를 만드는 방법

NS 메뉴 위젯을 사용하면 클릭 가능한 드롭다운 메뉴를 티킨터 .

앞서 언급했듯이, 티킨터 많은 위젯 옵션을 제공합니다. 드롭다운 메뉴를 디자인하는 동안 그 중 일부를 사용할 것입니다.

다음은 드롭다운을 만드는 동안 접하게 되는 몇 가지 일반적인 위젯 옵션입니다.

  • add_cascade: 메뉴 레이블을 표시하고 해당 위치에 붙입니다.
  • add_separator: 하위 메뉴를 구분하고 상위 및 하위 하위 메뉴로 그룹화합니다.
  • add_command: 여기에서 하위 메뉴 이름을 지정합니다. 궁극적으로 이벤트 핸들러를 지정할 수 있는 명령 인수를 허용합니다.

다음은 이 세 가지 옵션을 사용하는 드롭다운 예입니다.

from tkinter import *
t = Tk()
fileOptions = ['New', 'open', 'Save', 'Save as']
fileOptionsAfterseparator = ['Import', 'Export', 'Exit']
viewOptions = ['Transform', 'Edit', 'Create']
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label='File', menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label='View', menu=View)
t.config(menu=menuBar)
t.mainloop()

그것이 어떻게 보이는지보십시오 :

Tkinter 옵션 메뉴

NS 옵션 메뉴 , 달리 메뉴 드롭다운은 레이블을 선택한 옵션으로 전환합니다.

옵션 메뉴에 대한 기본 레이블 값을 지정할 수 있지만 기본적으로 레이블이 없습니다.

관련된: 초보자에게 적합한 Python 프로젝트 아이디어

옵션 메뉴를 만드는 방법은 다음과 같습니다. 티킨터 :

t = Tk()
Omenu = StringVar() #set the variable type of the options
Omenu.set('MUO') #specify a default value for the menu icon
OptionMenu(t, Omenu, 'MUO', 'Amazon', 'Tutorial').grid()
t.mainloop()

Tkinter로 재사용 가능한 데스크탑 앱 빌드

Tkinter는 대화형 GUI 데스크탑 앱을 만드는 데 도움이 되는 다양한 기능을 제공합니다. 다른 Python GUI 모듈과 같이 유연한 미화 기능이 많지 않을 수 있지만 여전히 탐색할 가치가 있는 편리한 도구입니다. 여기에 있는 예제는 기본 개념 중 일부만 보여주지만, 티킨터 시도할 수 있는 고급 기능을 제공합니다.

Snapchat에서 연속되는 방법

즉, GUI 데스크톱 계산기를 만들거나 미니 텍스트 편집기를 만들거나 인벤토리를 관리하기 위한 GUI 데스크톱 앱을 만들 수도 있습니다. 날개를 펴고 데스크탑 GUI 전공자가 되고 싶다면 Python의 다른 GUI 모듈을 확인할 수도 있습니다.

공유하다 공유하다 트위터 이메일 GUI? 그래픽 사용자 인터페이스란 무엇입니까?

GUI를 사용합니까? 매일 사용하기 때문에 가능성이 있습니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 파이썬
저자 소개 이디소 오미솔라(94건의 기사 게재)

Idowu는 스마트 기술과 생산성에 대한 열정을 가지고 있습니다. 여가 시간에는 코딩을 하거나 지루할 때 체스판으로 전환하지만 가끔씩 일상에서 벗어나는 것도 좋아합니다. 사람들에게 현대 기술에 대한 방법을 보여주고자 하는 그의 열정은 그가 더 많은 글을 쓰도록 동기를 부여합니다.

Idowu Omisola가 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.