от
Я хочу, чтобы выбрать элементы из multilistbox в tkinter путем привязки событий к клавишам со стрелками. В multilistbox отлично работает и здесь! с прокруткой мыши. Но он не работает с вверх/вниз клавиши со стрелками. Я добавил вверх/вниз ключ стрелки привязки к коду, но это не огонь, когда я нажмите на клавиши со стрелками и ни одно из этих решений от link1 и! и link2! работал для меня. Ниже то, что я добавил в код в ссылке, которую я предоставил:
...
lb.bind("", lambda e, s=self: s._OnEntryDown(e.y))
lb.bind("", lambda e, s=self: s._OnEntryUp(e.y))
...

...
def downarrow(self, *args):
   for l in self.lists:
       if self.selection < l.size()

Я жду выбора вверх/вниз клавиши со стрелками, чтобы работать идеально, как это делает с одного ListBox в tkinter. Пожалуйста, мне нужна помощь!

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Сделав несколько интернет-серфинга, мне удалось встретить эту ссылку! на GitHub, но это было написано в Python 2.х так я изменил его, чтобы работать с Python 3.X, а также. Ниже приведен измененный код:
#!/usr/bin/env python
import copy
import csv
import logging
import os
import platform
import tkinter as tk
from tkinter import *
from tkinter import ttk
import tkinter.constants as Tkc
import tkinter.filedialog as Tkfc
import tkinter.font as Tkf
import tkinter.messagebox as Tkmb
import webbrowser
import sys

logging.getLogger().setLevel(logging.DEBUG)


class MultiListbox(ttk.Frame):

    def __init__(self, parent, lists):
        ttk.Frame.__init__(self, parent)
        self.lists = []
        self.colmapping = {}
        self.orig_data = None
        self.fonts = {}
        self.y_sel = None
        for label, width in lists:
            frame = Frame(self)
            frame.pack(side=Tkc.LEFT, expand=Tkc.YES, fill=Tkc.BOTH)

            sort_button = Button(frame, text=label, borderwidth=1, relief=Tkc.RAISED)
            sort_button.pack(fill=Tkc.X)
            sort_button.bind("
...