我有一个类,它的主窗口(App)继承自ttkbootstrap.Window,而画布类继承自ttkbootstrap.Canvas. 我正在我的主窗口类(App)中创建Canvas类的对象,当我在App中添加滚动条并将其与Canvas连接时,它不会滚动.找出我在这里做错了什么.
另一个问题是,当我输入
self.bg = "red"
在画布类中,我的画布不会改变其 colored颜色 .
(我"遵循"了https://youtu.be/mop6g-c5HEY?t=28611教程.但我想用课程.而不是他所做的.他做这件事的方式,对我也很管用)
我已经试着用
self.configure(bg= "red)
但它也不会起作用
使用Tkinter而不是ttkbootstrap不会改变任何事情,我也试过了.
import ttkbootstrap as ttk
from random import randint, choice
class App(ttk.Window):
def __init__(self, start_size):
super().__init__()
self.geometry(f"{start_size[0]}x{start_size[1]}")
self.title("Tkinter Scrolling")
self.canvas = Canvas(self)
self.create_scrollbar()
self.mainloop()
def create_scrollbar(self):
self.scrollbar = ttk.Scrollbar(self, orient= "vertical", command= self.canvas.yview)
self.scrollbar.place(relx= 1, rely= 0, relheight= 1, anchor= "ne")
self.canvas.configure(yscrollcommand= self.scrollbar.set) # WONT SCROLL
class Canvas(ttk.Canvas):
def __init__(self, parent):
super().__init__(parent)
self.bg = "red" # WONT CHANGE COLOR
self.scrollregion = (0,0, 2000, 5000)
self.pack(expand= True, fill= "both")
self.create_symbols()
def create_symbols(self):
self.create_line(0,0, 2000, 5000, fill= "green", width= 10)
for i in range(100):
left = randint(0,2000)
top = randint(0, 5000)
right = left + randint(10, 500)
bottom = top + randint(10, 500)
color = choice(("red", "green", "yellow", "orange"))
self.create_rectangle(left, top, right, bottom,fill= color)
App((600,400))