支持文本小部件透明性或带有画布背景的文本小部件的Python GUI工具包?

发布于 2021-01-29 14:59:12

我正在尝试编写一个在条纹背景上显示可滚动文本小部件的程序。条纹的宽度,条纹之间的间隔以及条纹的颜色可由用户设置。

这是我所想的一个简单而又肮脏的例子:

例

(这似乎是一个丑陋且毫无意义的程序,但对于某些类型的眼部疾病,它可用作治疗工具)

我最初的想法是在画布小部件上将条纹绘制为矩形。然后,我计划在画布上覆盖带有透明背景的文本小部件。

现在,我正在使用Tkinter。但是看来Tkinter中的文本小部件不支持透明性或使用画布作为背景。看起来只有纯色可以用作背景。

哪些可用于Python的GUI工具包支持使用文本小部件背景透明性或使用画布作为背景的文本小部件?

关注者
0
被浏览
76
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果您愿意使用Tkinter,这是使用canvas小部件的简短示例。

    import Tkinter as tk
    
    class Example(tk.Frame):
        def __init__(self, *args, **kwargs):
            tk.Frame.__init__(self, *args, **kwargs)
            canvas = tk.Canvas(self, width=800, height=500)
            canvas.pack(side="top", fill="both", expand=True)
            for i in range(0, 800, 40):
                i+= 40
                fill = "yellow" if (i / 40) % 2 == 0 else "green"
                canvas.create_rectangle(i, 0, i+20, 500, fill=fill, outline="")
            canvas_id = canvas.create_text(10, 10, anchor="nw")
            canvas.itemconfig(canvas_id, text="this is the text "*300, width=780)
            canvas.itemconfig(canvas_id, font=("courier", 12))
            canvas.insert(canvas_id, 12, "new ")
    
    if __name__ == "__main__":
        root = tk.Tk()
        Example(root).pack(side="top", fill="both", expand=True)
        root.mainloop()
    

    看起来是这样的:

    工作示例的屏幕截图

    留给读者增加滚动的练习。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看