В настоящее время я создаю программу на 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()