Моя функция «открыть браузер» не работает при нажатии на ссылку Listbox (AttributeError: у объекта «Event» нет атрибута «listBox») - PullRequest
0 голосов
/ 09 апреля 2020

В настоящее время я создаю программу на python с tkinter, которая генерирует и показывает мне гиперссылки в списке. Пока все хорошо, он генерирует все гиперссылки, которые мне нужны, и проблем нет.

Теперь я хотел, чтобы, если я нажму на ссылку в этом списке, браузер откроет новое окно и перенаправит меня в браузер. Я создал следующие фрагменты и внедрил их в код для этой функции:

from random import seed
from random import random 
from random import randint
from random import randrange
from random import choice
import random
import tkinter
from tkinter import *
from tkinter import scrolledtext
import webbrowser

[....CodePlaceHolder...]

def internet(self):
    weblink = self.listBox.get(ANCHOR)
    webbrowser.open(weblink)

[....CodePlaceHolder...]

###this defines the listBox and the event bindings in the UI:
self.listBox = Listbox(self.bottom,width=60,height=27)
self.listBox.bind('<Double-Button-1>', internet)

[....CodePlaceHolder...]

Происходит следующее: Программа запускается -> генерирует более 100 ссылок в списке -> я нажимаю на ссылку (целое выбранное) строка будет выделена синим цветом после однократного нажатия на нее) -> при двойном щелчке ничего не происходит, и консоль выдает следующую ошибку:

Traceback (последний вызов был последним): File: "Path: \ Path \ Path \ Path \ Path \ main.py ", строка 65, в Интернете. Weblink = self.listBox.get (ANCHOR) AttributeError: у объекта 'Event' нет атрибута 'listBox'

Я вешаю эту проблему с 3 дней, и я действительно не знаю, что я сделал не так и почему это не работает. Я уже пробовал это с "weblink = self.listBox.get (ACTIVE)" и "weblink = self.listBox.get (self.listBox.curselection ())" , но это дал мне ту же ошибку. Я много искал в гугле и много жонглировал разными переменными и до сих пор не нашел ответа. Я также пытался дать моей функции inte rnet событие, определяющее событие, например def inte rnet (self, event), но он говорит, что события нет.

После всего этого я пробую это здесь переполнение стека.

Я надеюсь, что кто-то может мне помочь.

На всякий случай, вот мой def main () в конце моего кода:

def main():
    root = Tk()
    app = LinkGeneratorUI(root)
    root.title("Link Generator")
    root.geometry("650x555+350+200")
    root.resizable(False,False)
    root.mainloop()

if __name__ == '__main__':
    main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...