[python]

조회수 1021회
from tkinter import *
import webbrowser

root = Tk()
root.title("URL")

# 얘는 그냥 브라우저 창을 띄우는 친구
def mkurl(event):
    webbrowser.open_new(event.widget.cget("text"))

#이놈은 주소창 입력값을 가져오는 함수
def ok():
    listbox.insert(0, txt.get())

#URL입력하는 입력창
txt = Entry(root)
btn = Button(root, text="OK", command = ok)
listbox = Listbox(root, selectmode ='extended', height=10)

listbox.grid(row=1,column=2)
txt.grid(row=0, column=1)
btn.grid(row=1, column=1)

root.mainloop()

url을 엔트리에 넣고 버튼을 누르면 리스트에 추가가 됩니다. 근데 그 추가된 리스트를 선택하면 브라우저 오픈하는 하이퍼링크기능을 넣고 싶은데 안 넣어집니다. 바인드를 넣어도 계속 트레이스백 뜨고 미치겠습니다 .

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    트래이스백을 잘 읽어보면 상세한 오류 내용을 알 수 있습니다. 그리고 프로그래밍은 성격 급하면 못해요.

    오류 설명도 없고 작성한 코드에 대한 설명 또한 없어서 대충 코딩했습니다.

    mkurl 함수를 listbox ListboxSelect 의 핸들링 함수로 등록했고 listbox 의 요소를 클릭시 등록한 주소로 브라우져가 실행됩니다.

    from tkinter import *
    import webbrowser
    
    root = Tk()
    root.title("URL")
    
    # 얘는 그냥 브라우저 창을 띄우는 친구
    def mkurl(event):
        index = event.widget.curselection()
        webbrowser.open_new(event.widget.get(index))
    
    #이놈은 주소창 입력값을 가져오는 함수
    def ok():
        listbox.insert(0, txt.get())
    
    #URL입력하는 입력창
    txt = Entry(root)
    btn = Button(root, text="OK", command = ok)
    listbox = Listbox(root, selectmode ='extended', height=10)
    listbox.bind('<<ListboxSelect>>', mkurl)
    
    listbox.grid(row=1,column=2)
    txt.grid(row=0, column=1)
    btn.grid(row=1, column=1)
    
    root.mainloop()
    
    • 연등 시간에 공부하다가 시간에 쫓겨서 막 급하게 확인해서 그런가 봅니다.. 유승재 2019.12.13 22:21
    • listboxselect를 사용할 생각을 안했네요 ㅠㅠ 급하게 안하고 차근차근 생각하면서 해보겠습니다 막 적은 코딩에 답변 감사합니다! 유승재 2019.12.13 22:21

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)