0

縞模様の背景の上にスクロール可能なテキスト ウィジェットを表示するプログラムを作成しようとしています。ストライプの幅、ストライプ間の間隔、およびストライプの色は、ユーザーが設定できます。

これは、私が想像していることの簡単で汚い例です。

例

(醜くて無意味なプログラムのように見えるかもしれませんが、特定の種類の目の問題に対する治療ツールとして役立ちます)

私の当初のアイデアは、キャンバス ウィジェットにストライプを長方形として描画することでした。次に、背景が透明なテキスト ウィジェットをキャンバスに重ねることを計画しました。

現在、Tkinter を使用しています。しかし、Tkinter のテキスト ウィジェットは、透明度や背景としてのキャンバスの使用をサポートしていないようです。背景として使用できるのは単色のみのようです。

テキストウィジェットの背景の透明度/またはキャンバスを背景として使用するテキストウィジェットの使用をサポートする Python で使用できる GUI ツールキットは何ですか?

4

2 に答える 2

1

WXpythonを見てみましょう

透明なトップレベル ウィンドウの例を次に示します。

透明なフレーム

WX は、これを実行できる唯一の GUI ライブラリです。tkinter は、より基本的な GUI に適していますが、WX ははるかに柔軟です。

WX で透過性を使用するいくつかの例を次に示します。

透明な静的テキスト

透明パネル

これがお役に立てば幸いです!

于 2013-08-28T03:52:06.937 に答える
1

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

これは次のようになります。

作業例のスクリーンショット

スクロールの追加は、読者の演習として残されています。

于 2013-08-28T04:26:26.177 に答える