为了账号安全,请及时绑定邮箱和手机立即绑定

Tkinter 文本框(随机/交替改变 Tkinter 文本框的前景色)

Tkinter 文本框(随机/交替改变 Tkinter 文本框的前景色)

四季花海 2023-03-30 10:40:58
#Text FrameTextFrame = Frame(win, bg="#003030")TextFrame.pack(fill=BOTH, expand=True)#Create a Text BoxTextBox = Text(TextFrame)TextBox.pack(side="bottom", fill=BOTH, expand=True)#Color Pickerchoose = ["#ff0000", "#0000ff"]color = choice(choose)#Button Functiondef render():    global color    from tkinter import Text    input = (TextBox.get("1.0",'end-1c')) #Takes input from the Text Box    win2 = Toplevel()    win2.attributes("-fullscreen", True)    TextFull = Text(win2, font="Ubuntu 14",**fg=choice(choose)**, bg="black")    TextFull.insert(0.0,input) #Displays Input from first window to second window    TextFull.pack(fill=BOTH, expand=True)如何从文本框中的选择列表中获取随机 fg 颜色。目前我一次只能得到一种 fg 颜色。
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

    #Color Picker

colorlist = ["#ff0000", "#0000ff"]


#Button Function


def render():

    global color

    import random

    from tkinter import Text

    input = (TextBox.get("1.0",'end-1c')) #Takes input from the Text Box

    win2 = Toplevel()

    win2.attributes("-fullscreen", True)


    TextFull = Text(win2,

        font="Ubuntu 14",

        fg="white",

        bg="black")


    for i in range (len(colorlist)):

        TextFull.tag_configure(str(i), foreground=colorlist[i])


    # TextFull.insert(0.0,input) #Displays Input from first window to second window

    TextFull.pack(fill=BOTH, expand=True)


    for i in input:

        tempchoice =random.randint(0, len(colorlist)-1)

        TextFull.insert(END, i, str(tempchoice))

    TextFull.insert(END, '\n')

终于设法通过使用 tag_configure 获得了想要的结果。不是随机单词,而是字母,我可以接受。


查看完整回答
反对 回复 2023-03-30
?
当年话下

TA贡献1890条经验 获得超9个赞

首先,您必须创建具有初始前景色的文本小部件。然后你需要在一个定时的事情中改变前景的颜色。您可以使用after()该方法:


def render():


    def flash():                                            # <-- flash()

        TextFull.config(fg=choice(["#ff0000", "#0000ff"]))  # <-- update color

        win.after(1000, flash)                              # <-- call flash again after 1 second


    global color

    from tkinter import Text

    input = (TextBox.get("1.0",'end-1c')) #Takes input from the Text Box

    win2 = Toplevel()

    win2.attributes("-fullscreen", True)



    TextFull = Text(win2, font="Ubuntu 14", fg='#0000ff', bg="black")

    TextFull.insert(0.0,input) #Displays Input from first window to second window

    TextFull.pack(fill=BOTH, expand=True)

    flash()                                                   # call flash


查看完整回答
反对 回复 2023-03-30
  • 2 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信