Python Tkinter-当使用网格满足输入字段时,如何更改帧的颜色
如果用户输入“b”,我试图使帧的颜色变为黑色,如果用户输入“g”,则变为绿色。这就是我到目前为止所做的 多谢各位Python Tkinter-当使用网格满足输入字段时,如何更改帧的颜色,python,tkinter,colors,grid,frame,Python,Tkinter,Colors,Grid,Frame,如果用户输入“b”,我试图使帧的颜色变为黑色,如果用户输入“g”,则变为绿色。这就是我到目前为止所做的 多谢各位 from tkinter import * class Main: def __init__(self): root = Tk() root.geometry("250x300-1200-400") frame = Frame(root) # input field stored self.i
from tkinter import *
class Main:
def __init__(self):
root = Tk()
root.geometry("250x300-1200-400")
frame = Frame(root)
# input field stored
self.input_a = StringVar()
# input field
input_color_changer = Entry(root, textvariable=self.input_a)
input_color_changer.grid(row=0, column=0)
button = Button(root, text="Run", command=self.ColorChanger)
button.grid(row=1, column=2)
root.mainloop()
def ColorChanger(self):
input_b = self.input_a.get()
if input_b == "b":
print("BLACK") # CHANGE COLOR OF FRAME TO BLACK
if input_b == "g":
print("GREEN") # CHANGE COLOR OF FRAME TO GREEN etc...
Main()
您不需要在窗口中放置事件框(您不需要使用
pack()
/grid()
/place()
),但如果您甚至将它放在窗口中,它是空的,所以它没有高度和宽度,所以您不会看到差异
最好使用root
进行此操作,但您需要self.root
在其他函数中访问它,然后才能执行此操作
self.root['bg'] = 'green'
是什么阻止了您更改框架的颜色?您必须使用
self.
和self.frame[“bg”]=“black”
,但是frame
是空的(您将所有小部件直接放在根目录下),因此它没有大小,您将看不到不同的背景。非常感谢furas。一个月前我开始了我的编程之旅,现在我正在学习小项目。
# from tkinter import * # PEP8: not preferred
import tkinter as tk
class Main:
def __init__(self):
self.root = tk.Tk()
self.root.geometry("250x300-1200-400")
#self.frame = tk.Frame(self.root)
#self.frame.pack()
# input field stored
self.input_a = tk.StringVar()
# input field
input_color_changer = tk.Entry(self.root, textvariable=self.input_a)
input_color_changer.grid(row=0, column=0)
button = tk.Button(self.root, text="Run", command=self.color_changer)
button.grid(row=1, column=2)
self.root.mainloop()
def color_changer(self): # PEP8: lower_case_names for methods/functions/variables
input_b = self.input_a.get()
if input_b == "b":
print("BLACK") # CHANGE COLOR OF FRAME TO BLACK
self.root['bg'] = 'black'
if input_b == "g":
print("GREEN") # CHANGE COLOR OF FRAME TO GREEN etc...
self.root['bg'] = 'green'
Main()