рамка Python Tkinter с горизонтальной и вертикальной полосами прокрутки - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь создать фрейм в блокноте, который будет прокручиваться с использованием кода класса из https://lucasg.github.io/2015/07/21/How-to-make-a-proper-double-scrollbar-frame-in-Tkinter/

Однако, по какой-то причине, когда я делаю окно меньше, чем область содержимого (ScheduleMatrixttk.Frame, который содержит кучу виджетов), полосы прокрутки изменяют размер, но остаются неактивными и непригодными для использования.Что мне не хватает?Если это имеет значение, виджеты, добавленные в фрейм ScheduleMatrix, упорядочиваются с помощью диспетчера геометрии сетки.

class BVSGUI(ttk.Frame):
    def __init__(self, master):
        ttk.Frame.__init__(self, master)
        nb = ttk.Notebook(self)
        nb.pack(expand=True, fill="both")
        nb.enable_traversal()

        p1 = ttk.Frame(nb)
        p1.pack(expand=True, fill="both")
        nb.add(p1, text='First Tab', underline=0)
        ds1 = DoubleScrollbarFrame(p1)
        ds1.pack(expand=True, fill="both")
        m1 = ScheduleMatrix(ds1.canvas)
        m1.pack(expand=True, fill="both")

        p23 = ttk.Frame(nb)
        p23.pack(expand=True, fill="both")
        nb.add(p23, text='Tab 23', underline=0)
        ds23 = DoubleScrollbarFrame(p23)
        ds23.pack(expand=True, fill="both")
        m23 = ScheduleMatrix(ds23.canvas)
        m23.pack(expand=True, fill="both")

1 Ответ

0 голосов
/ 04 января 2019

Я сделал для вас Фрейм, который доступен здесь .Используйте его как обычный фрейм, а не как вы сделали вышеКак это:

p1 = DoubleScrolledFrame(nb)
nb.add(p1, text='First Tab', underline=0)
m1 = ScheduleMatrix(p1)
m1.pack(expand=True, fill="both")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...