tkinter вертикальная прокрутка нескольких текстовых областей с помощью колесика мыши - PullRequest
0 голосов
/ 09 февраля 2019

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

нажмите здесь, чтобы посмотреть код

Спасибо за поддержку

1 Ответ

0 голосов
/ 12 февраля 2019

Я не могу открыть ваше изображение, но позвольте мне попытаться помочь вам.

Установите для параметра команды виджета на полосе прокрутки значение txt yview.

scrollb = tk.Scrollbar(..., command=txt.yview)

Установите команду yscroll для текстового виджетаОпция для метода установки полосы прокрутки.

txt['yscrollcommand'] = scrollb.set

Вам необходимо сделать так, чтобы ваш текст и полоса прокрутки реагировали на колесо мыши.

Чтобы добавить номера строк в текст, возможно, вы могли бы использовать цикл, который добавляет номера в следующую строку каждый раз, когда вы делаете цикл.

Вот рабочий код с полосой прокрутки, реагирующей на колесо мыши:

import tkinter as tk

class App(object):

def __init__(self):
    self.root = tk.Tk()

# create a Frame for the Text and Scrollbar
    txt_frm = tk.Frame(self.root, width=600, height=600)
    txt_frm.pack(fill="both", expand=True)
    # ensure a consistent GUI size
    txt_frm.grid_propagate(False)
    # implement stretchability
    txt_frm.grid_rowconfigure(0, weight=1)
    txt_frm.grid_columnconfigure(0, weight=1)

# create a Text widget
    self.txt = tk.Text(txt_frm, borderwidth=3, relief="sunken")
    self.txt.config(font=("consolas", 12), undo=True, wrap='word')
    self.txt.grid(row=0, column=0, sticky="nsew", padx=2, pady=2)

# create a Scrollbar and associate it with txt
    scrollb = tk.Scrollbar(txt_frm, command=self.txt.yview)
    scrollb.grid(row=0, column=1, sticky='nsew')
    self.txt['yscrollcommand'] = scrollb.set

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