2017-12-01 13 views
1

ttk 모듈의 위젯에 bg 색상을 추가하는 방법?, 벨로우즈가 필요한 결과를 제공하지 않습니다. Tkinter 모듈로 일반적인 방법을 시도했습니다. 그러나 그것은 효과가 없었습니다.ttk 모듈 위젯에 색상을 추가하는 방법은 무엇입니까?

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

'StackOverflow'에 오신 것을 환영합니다. 질문 할 때 좀 더 구체적으로 설명하십시오. * 코드 예제로 지금까지 시도한 것은 무엇입니까? */* 무엇을 기대합니까? */* 어떤 오류가 발생합니까? * ** 도움말을 보려면 "[How to ask] (https://stackoverflow.com/help/how-to-ask)"를 참조하십시오. * – Hille

답변

2

스타일 객체를 사용하여 위젯에 색상을 추가해야합니다. 스타일 객체를 별도로 정의하고 레이블에 스타일 이름을 사용하여 필요한 스타일을 얻습니다.

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

내가 확실하지 오전하지만 이것은 당신이 물어 무엇을 의미하는지 경우이이 문제를 해결 같아요.

+0

예, Hille이 맞습니다. 어쩌면 정확한 코드 줄을 지적해야합니다. 문제는 전체 코드 대신. – Rahul

+0

다음 번에 그렇게하겠습니다. 정말 고마워요. – Ajak978