我正在尝试使用随机十六进制数字的代码,将其转换为RGB并在窗口中显示它。我还想要一个改变颜色的按钮。目前,即使正在生成新的十六进制数,按钮也不会改变窗口的颜色,一切正常。我每按一下按钮就会尝试打开一个新窗口来创建更新,没有运气。这是我的代码。
import tkinter as tk
import random
options = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
r1 =random.choice(options)
r2 =random.choice(options)
r3 =random.choice(options)
r4 =random.choice(options)
r5 =random.choice(options)
r6 =random.choice(options)
hexnumber = '#' +r1 + r2 + r3 + r4 +r5 + r6
def ChangeHex():
options = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
r1 =random.choice(options)
r2 =random.choice(options)
r3 =random.choice(options)
r4 =random.choice(options)
r5 =random.choice(options)
r6 =random.choice(options)
hexnumber = '#' +r1 + r2 + r3 + r4 +r5 + r6
def New():
new = tk.Tk()
new.geometry("800x800")
new.resizable(0, 0)
new.configure(bg=hexnumber)
b = tk.Button(new, text="Change Your Color",command=Combine)
b.pack()
new.mainloop()
def ChangeColor():
root.config(bg = hexnumber)
def Combine():
ChangeHex()
ChangeColor()
root = tk.Tk()
root.geometry("800x800")
root.resizable(0, 0)
root.configure(bg=hexnumber)
b = tk.Button(root, text="Change Your Color",command=Combine)
b.pack()
root.mainloop()
此外,抱歉,如果这是愚蠢的,这是我第一次使用tkinter。
答案 0 :(得分:0)
您有两个名为hexnumber
首先 - 全局 - 您创建外部函数
第二个 - 本地 - 您在ChangeHex()
您必须在global hexnumber
中使用ChangeHex()
来通知函数,而不是使用外部全局变量而不是创建本地变量
def ChangeHex():
global hexnumber
options = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
r1 =random.choice(options)
r2 =random.choice(options)
r3 =random.choice(options)
r4 =random.choice(options)
r5 =random.choice(options)
r6 =random.choice(options)
hexnumber = '#' +r1 + r2 + r3 + r4 +r5 + r6
但如果使用return hexnumber
并使用参数运行函数可能会更好 - def ChangeColor(hexnumber):
import tkinter as tk
import random
def ChangeHex():
options = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
r1 =random.choice(options)
r2 =random.choice(options)
r3 =random.choice(options)
r4 =random.choice(options)
r5 =random.choice(options)
r6 =random.choice(options)
hexnumber = '#' +r1 + r2 + r3 + r4 +r5 + r6
return hexnumber
def ChangeColor(hexnumber):
root.config(bg = hexnumber)
def Combine():
new_hex = ChangeHex()
ChangeColor(new_hex)
root = tk.Tk()
root.geometry("800x800")
root.resizable(0, 0)
root.configure(bg=ChangeHex())
b = tk.Button(root, text="Change Your Color",command=Combine)
b.pack()
root.mainloop()