Полоса прокрутки в виде дерева в tkinter - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь реализовать TreeView в Tkinter с помощью полосы прокрутки.У меня есть успех в размещении полосы прокрутки, но я не могу разместить ее в нужном месте.Ниже приведен полный код:

from tkinter import*
from tkinter import ttk
import sqlite3

class Product:

    db_name = 'Gateway_Log.db'

    def __init__(self,wind):
        self.wind=wind
    self.wind.title('Device details')
        self.tree = ttk.Treeview (height=25, columns=2)
        self.tree.heading('#0',text = 'Name', anchor=W)
        self.tree.heading(2, text='Price', anchor=W)
        vsb = ttk.Scrollbar(wind, orient="vertical")
        vsb.configure(command=self.tree.yview)
        self.tree.configure(yscrollcommand=vsb.set)
        self.tree.pack()
        vsb.pack()
        self.viewing_records()


    def run_query(self, query, parameters =()):
        with sqlite3.connect (self.db_name) as conn:
            cursor = conn.cursor()
            query_result=cursor.execute(query, parameters)
            conn.commit()
        return query_result

    def viewing_records(self):
        records = self.tree.get_children()
        for element in records:
            self.tree.delete(element)
        query= 'SELECT * FROM Device_Status'
        db_rows=self.run_query(query)
        for row in db_rows:
            self.tree.insert('',0, text = row[0], values = row[1])


if __name__ == '__main__':
    wind=Tk()
    application = Product(wind)
    wind.mainloop()

После вывода я получаю:

enter image description here

Я хочу полосу прокрутки после поля цены не внизусторона.

1 Ответ

2 голосов
/ 19 сентября 2019

Вам необходимо указать side, где вы хотите pack свой виджет, а также в каком направлении он должен fill.

self.tree.pack(side="left")
vsb.pack(side="right",fill="y")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...