Как узнать, в каком ряду находится метка на сетке в Tkinter? - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть таблица (сетка), которую я создаю, состоящая из меток.

Эти метки показывают элементы, которые я добавляю в список, поэтому, когда я добавляю новый объект в список, таблица будет расти, показывая больше меток.

Мое намерение состоит в том, чтобы я мог щелкнуть ярлык и напечатать на нем строку таблицы, в которой находится этот ярлык.

import tkinter as tk

phrasesdb = []

def debug(event):
    #this is where I'd have it print the row
    #but how do I get it?
    #for example, it the label I pressed was in the row 2, it'd print 2
    print( ??? )

#Add obj to list
def addline():
    ##This creates new obj with values from the input fields, and inserts it in the list
    newobj = {"text": newtext.get()} #This is getting the text from an Entery
    phrasesdb.append(newobj)

    ##This shows new obj on the table
    newesttext = tk.Label(tableframe, text=newobj["text"])
    newesttext.grid(row=len(phrasesdb), column=1, sticky=tk.W)

    newesttext.bind("<Double-Button-1>", debug)

Я уже могу показать их в таблице, и чтобы он распознал, я нажимаю правильную этикетку (проверено простым шрифтом («да, это оно»)), но я не в состоянии выяснить, как получить доступ к строке метки, которую я нажимаю.

Я немного новичок в python и особенно в tkinter, так что извините, если это действительно простой вопрос, но я не найду ответа нигде ...

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Вы можете использовать метод grid_info, который будет возвращать словарь атрибутов сетки элемента.

def debug(event):
    widget = event.widget
    info = widget.grid_info()
    row = info['row']
0 голосов
/ 18 ноября 2018

Если я правильно понимаю вашу проблему, используя .grid_info () ['row'] на ярлыке, который вы уже получили после нажатия, должен вернуть нужный вам результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...