У меня были и другие проблемы, например.
- Обучение сделать кнопки прокручиваемыми,
Это я исправил, научившись использовать для этого Canvas.create_window. - Содержимое указанного холста окно вылетает в стороны с боков
кнопки вытекание за пределы холста
Это я исправил, разместив холст во фрейме верхнего уровня вместо корневого окна.
Похоже, проблема является подсектором проблемы 2, поскольку кнопки рендерятся в зависимости от размера моего экрана, и это само по себе, кажется, некоторых беспокоит.
меньшее дополнение к этой проблеме, похоже, заключается в том, что полоса прокрутки оставляет много места оставляя массу места для использования, я опубликую ответ на свой вопрос, если найду его. Обычно я не задаю вопросы, но оставить след для будущих разработчиков было бы неплохо.
Снимок экрана ниже
[img]https:// i.sstatic.net/grGUa.png[/img]
Код: Выделить всё
import tkinter as tk
from tkinter import BOTH, BOTTOM, LEFT, RIGHT, TOP, X, Y, Button, Canvas, Frame, Tk
import matplotlib
import tkinter.ttk as ttk
import sys
# caution: path[0] is reserved for script path (or '' in REPL)
sys.path.insert(1, "/home/will/Projects/CoinBaseADVtrade_Data")
import Data
class GUI(Tk):
def __init__(self):
super().__init__()
self.top_frame = Frame(self)
self.top_frame.pack(side=TOP, )
self.canvas = Canvas(self.top_frame, bg="Black",width=177)
self.frame = Frame(self.top_frame,height=20,width=400)
self.vsb = tk.Scrollbar(self.top_frame, orient="vertical", command=self.canvas.yview)
self.canvas.configure(yscrollcommand=self.vsb.set)
self.vsb.pack(side=RIGHT, fill=Y)
self.canvas.pack(side=TOP,)
self.canvas.create_window((0,0),window=self.frame,anchor="n")
self.frame.bind("", lambda event, canvas=self.canvas: canvas.configure(scrollregion=canvas.bbox("all")))
self.populate(self.frame)
def populate(self,frame):
products = Data.Products().list_products()
for i in range(len(products)):
print(products.iloc[i].name)
Button(frame,height =5,width = 20,text=products.iloc[i].name).pack(side=TOP, padx=5,pady=3)
pass
GUI().mainloop()
, но ни одно из решений не дало никаких результатов и привело к путанице в моем коде.
Подробнее здесь: https://stackoverflow.com/questions/778 ... of-buttons