0

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

这是我想象的一个快速而肮脏的例子:

例子

(它可能看起来像一个丑陋且毫无意义的程序,但它可以作为治疗某些眼部问题的工具)

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

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

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

4

2 回答 2

1

如果您愿意使用 Tkinter,这里有一个使用画布小部件的简短示例。

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()

这是它的样子:

工作示例的屏幕截图

添加滚动作为练习留给读者。

于 2013-08-28T04:26:26.177 回答
1

看看WXpython

这是一个透明顶层窗口的例子

透明框架

WX 是我认为可以做到的唯一 GUI 库,tkinter 对更基本的 GUI 有好处,而 WX 更灵活

这里还有几个使用 WX 透明度的例子

透明静态文本

透明面板

我希望这可以帮助你!

于 2013-08-28T03:52:06.937 回答