如何为 ttk 模块小部件添加颜色?
how to add color to ttk module widgets?
如何为 ttk 模块中的小部件添加 bg 颜色?,下面的内容没有给我所需的结果。
我尝试了通常的方法作为 Tkinter 模块。但是没用。
from tkinter import *
from tkinter.ttk import *
import sqlite3
db_obj = sqlite3.connect("contact.db")
def count_index():
cur = db_obj.cursor()
count = cur.execute("select count(index) from contacts;")
rowcount = cur.fetchone()[0]
return rowcount
def enter(event=None):
x=e1.get()
y=e2.get()
ci=count_index()+1
db_obj.execute("insert into contacts(index, name, number)
values(?,?,?);",(ci,x,y))
db_obj.commit()
fx =Frame(bg="LightCyan2")
bt=Button(fx)
fr.pack(expand=YES)
l1=Label(fx, text="Enter name", bg="LightCyan2").grid(row=1,column=1)
l2=Label(fx, text="Enter number", bg="LightCyan2").grid(row=2,column=1)
e1=Entry(fx)
e2=Entry(fx)
e1.grid(row=1,column=2)
e2.grid(row=2,column=2)
e1.focus()
e2.focus()
bt.config(text="ENTER",command=enter)
bt.grid(row=3,column=2)
bt.bind('<Return>',enter)
fx.mainloop()
您需要使用样式对象来为小部件添加颜色。
单独定义样式对象,并在标签中使用样式名称来获得所需的样式。
s1 = Style()
s1.configure('My.Frame', background='LightCyan2')
修改后的代码:
from tkinter import *
from tkinter.ttk import *
import sqlite3
db_obj = sqlite3.connect("contact.db")
def count_index():
cur = db_obj.cursor()
count = cur.execute("select count(index) from contacts;")
rowcount = cur.fetchone()[0]
return rowcount
def enter(event=None):
x=e1.get()
y=e2.get()
ci=count_index()+1
conx.execute("insert into words(index, name, number) values(?,?,?);",(ci,x,y))
conx.commit()
s1 = Style()
s1.configure('My.Frame', background='LightCyan2')
s2=Style()
s2.configure('My.Label', background='LightCyan2')
fx =Frame(style='My.Frame')
bt=Button(fx)
fx.pack(expand=YES)
l1=Label(fx, text="Enter word", style='My.Label').grid(row=1,column=1)
l2=Label(fx, text="Enter meaning", style='My.Label').grid(row=2,column=1)
e1=Entry(fx)
e2=Entry(fx)
e1.grid(row=1,column=2)
e2.grid(row=2,column=2)
e1.focus()
e2.focus()
bt.config(text="ENTER",command=enter)
bt.grid(row=3,column=2)
bt.bind('<Return>',enter)
fx.mainloop()
我想这可以解决你的问题,虽然我不确定这是否是你想问的。
如何为 ttk 模块中的小部件添加 bg 颜色?,下面的内容没有给我所需的结果。 我尝试了通常的方法作为 Tkinter 模块。但是没用。
from tkinter import *
from tkinter.ttk import *
import sqlite3
db_obj = sqlite3.connect("contact.db")
def count_index():
cur = db_obj.cursor()
count = cur.execute("select count(index) from contacts;")
rowcount = cur.fetchone()[0]
return rowcount
def enter(event=None):
x=e1.get()
y=e2.get()
ci=count_index()+1
db_obj.execute("insert into contacts(index, name, number)
values(?,?,?);",(ci,x,y))
db_obj.commit()
fx =Frame(bg="LightCyan2")
bt=Button(fx)
fr.pack(expand=YES)
l1=Label(fx, text="Enter name", bg="LightCyan2").grid(row=1,column=1)
l2=Label(fx, text="Enter number", bg="LightCyan2").grid(row=2,column=1)
e1=Entry(fx)
e2=Entry(fx)
e1.grid(row=1,column=2)
e2.grid(row=2,column=2)
e1.focus()
e2.focus()
bt.config(text="ENTER",command=enter)
bt.grid(row=3,column=2)
bt.bind('<Return>',enter)
fx.mainloop()
您需要使用样式对象来为小部件添加颜色。 单独定义样式对象,并在标签中使用样式名称来获得所需的样式。
s1 = Style()
s1.configure('My.Frame', background='LightCyan2')
修改后的代码:
from tkinter import *
from tkinter.ttk import *
import sqlite3
db_obj = sqlite3.connect("contact.db")
def count_index():
cur = db_obj.cursor()
count = cur.execute("select count(index) from contacts;")
rowcount = cur.fetchone()[0]
return rowcount
def enter(event=None):
x=e1.get()
y=e2.get()
ci=count_index()+1
conx.execute("insert into words(index, name, number) values(?,?,?);",(ci,x,y))
conx.commit()
s1 = Style()
s1.configure('My.Frame', background='LightCyan2')
s2=Style()
s2.configure('My.Label', background='LightCyan2')
fx =Frame(style='My.Frame')
bt=Button(fx)
fx.pack(expand=YES)
l1=Label(fx, text="Enter word", style='My.Label').grid(row=1,column=1)
l2=Label(fx, text="Enter meaning", style='My.Label').grid(row=2,column=1)
e1=Entry(fx)
e2=Entry(fx)
e1.grid(row=1,column=2)
e2.grid(row=2,column=2)
e1.focus()
e2.focus()
bt.config(text="ENTER",command=enter)
bt.grid(row=3,column=2)
bt.bind('<Return>',enter)
fx.mainloop()
我想这可以解决你的问题,虽然我不确定这是否是你想问的。