토렌트 마그넷 검색기(2)

2019. 1. 17. 03:02프로젝트/토렌트 마그넷 크롤링

파이썬 GUI - Tkinter

이전에 만든 마그넷 검색, 다운로드 프로그램에 사용자 편의를 위해 GUI를 추가합니다.

GUI를 위한 라이브러리로 Tkinter를 사용했습니다.

Tkinter의 Label, Listbox, Button을 주로 사용했습니다.


Label 위젯

Label은 위 그림과 같이 문자열을 넣기 위해 사용했고 아래와 같은 코드로 Label을 넣어줍니다.

mlabel = Label(text='제작 : jinho021712@gmail.com').pack()
mlabel = Label(text='아래 검색창에 입력 후 엔터 → 선택 후 다운로드 버튼').pack()

.pack()으로 위젯의 배치 속성을 정하고 가장 빨리 선언된 .pack()부터 순차적으로 놓입니다.

 


Listbox 위젯

Listbox위젯은 위 그림에서 다운로드 버튼 아래 있는 흰 창입니다.

말 그대로 리스트를 놓기위한 위젯입니다. 아래 코드와 같이 만들고

List는 배열로 만들었기 때문에 List.insert("값") 과 같은 방법으로 요소를 추가 할 수 있습니다.

List2 = Listbox(mGui, width = 92)
List2.pack()

Button 위젯

다운로드를 위한 '다운로드' 버튼과 '방송회차정보' 버튼을 추가했습니다.

버튼 클릭 시 이벤트는 리스트에서 선택된 요소의 마그넷 코드를 웹 브라우저에서 여는 것입니다.

def mgnetBt():
    try:
        clicked_items = List1.curselection()
        clicked_items_num = clicked_items[0]
        #print(clicked_items_num)
        
        mglink = mglist[clicked_items_num]
        webbrowser.open("magnet:?xt=urn:btih:"+mglink)
    except:
        tkinter.messagebox.showinfo('안내','마그넷 주소가 존재하지 않거나 불러올 수 없습니다.')

 

버튼 위젯도 마찬가지로 .pack()을 사용해서 넣어주었고 옵션을 넣어 줄 수 있습니다.

text로 버튼에 문자열을 넣어주었고 command로 실행될 함수를 연결했습니다.

mbutton = Button(mGui, text = '다운로드', command = mgnetBt, width = 92).pack()

검색창(Entry 위젯)

입력 창은 Entry위젯으로 만들 수 있습니다.

검색은 버튼 대신 검색어 입력 후 엔터를 치면 이벤트를 실행하도록 했습니다.

mEntry = Entry(mGui, textvariable = ment, width = 92)
mEntry.bind("<Return>", searchBt)
mEntry.pack()

mEntry.bind("<Return>", searchBt) 이 부분이 이벤트를 실행시키는 부분입니다.

<Return>은 엔터가 눌렸을때를 조건으로 두는 것이고 searchBt라는 함수를 실행합니다.


리스트 선택과 클릭 이벤트

버튼을 눌러서 이벤트를 실행하기 전 어떤 리스트가 선택되었는지 알아야 합니다.

clicked_items와 clicked_items_num이라는 변수를 사용했는데

clicked_items 변수에는 .curselection()함수를 이용해 현재 리스트의 순번을 알아내고

clicked_items_num 변수에 그 숫자를 담았습니다.

clicked_items = List2.curselection()
clicked_items_num = clicked_items[0]
#print(clicked_items_num)
tkinter.messagebox.showinfo('안내',datalist[clicked_items_num])

프로그램 실행 순서

1. 검색창에 입력 후 엔터

 

 

 

2. 검색된 리스트 선택 후 다운로드 버튼 클릭

 

 

 

3. 리스트 클릭 후 버튼을 누르면 회차정보를 볼 수 있다.

 


 

Yeowoolee/Torrent-magnet-crawler

Pytest. Contribute to Yeowoolee/Torrent-magnet-crawler development by creating an account on GitHub.

github.com