我有一个类,它的主窗口(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))

推荐答案

Tkinter中不会发生任何事情-self.bg = "red"不会影响显示,self.configure(bg= "red")应该可以工作(但可能没有任何可见的效果,如果您的随机矩形完全填满Canvas).滚动不起作用,因为您还没有设置一个scrollregion属性与.config()方法.- Jasonharper

Python相关问答推荐

如何根据情况丢弃大Pandas 的前n行,使大Pandas 的其余部分完好无损

如何在Python中使用时区夏令时获取任何给定本地时间的纪元值?

将HTML输出转换为表格中的问题

对Numpy函数进行载体化

替换字符串中的多个重叠子字符串

通过Selenium从页面获取所有H2元素

为什么这个带有List输入的简单numba函数这么慢

如何使用Python以编程方式判断和检索Angular网站的动态内容?

cv2.matchTemplate函数匹配失败

Python—转换日期:价目表到新行

python—telegraph—bot send_voice发送空文件

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

基于Scipy插值法的三次样条系数

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

将一个双框爆炸到另一个双框的范围内

在numpy数组中寻找楼梯状 struct

如何在Django模板中显示串行化器错误

来自Airflow Connection的额外参数

启动线程时,Python键盘模块冻结/不工作

如何在表单中添加管理员风格的输入(PDF)