如何使用 TTK 更改按钮的字体和背景?

问题描述 投票:0回答:1

事实上,我想用TTK为我的图形项目制作一个按钮;但遗憾的是我没能做到这一点。经过大量尝试和错误后,我意识到问题出在字体和背景上。

我尝试通过从按钮中删除字体和背景来解决问题,但它们对于它来说是绝对必要的。我期望它能工作,但结果是一个错误!(我不得不说我的项目尚未完成,我将向其中添加许多其他选项卡和商品;但我想在继续之前解决这个问题。) 这是我的代码:

import tkinter as tk 
from tkinter import ttk
window = tk.Tk()
window.geometry('800x600')
window.title('store calculations')
window.configure(background='gray')

tab_control = ttk.Notebook(window)

tab_1 = ttk.Frame(tab_control)
tab_2 = ttk.Frame(tab_control)

tab_control.add(tab_1,text='Installment purchase')
tab_control.add(tab_2,text='Delmonti')
tab_control.pack(expand=1,fill='both')

def run ():
    amount = int(txt_amount.get())
    prepayment = int(txt_prepayment.get())
    installments = int(txt_installments.get())
    money_left = amount - prepayment
    each_month = money_left / installments + money_left * 3 / 100
    if each_month == int(each_month):
        each_month = int(each_month)
    else:
        each_month = round(each_month,2)
    txt_each_month.insert(0,str(each_month))

def clear():
    txt_amount.delete(first=0,last='end')
    txt_prepayment.delete(first=0,last='end')
    txt_installments.delete(first=0,last='end')
    txt_each_month.delete(first=0,last='end')

def one_third():
    amount = int(txt_amount.get())
    one_third_of_the_amount = amount * 1 / 3
    if one_third_of_the_amount == int(one_third_of_the_amount):
        one_third_of_the_amount = int(one_third_of_the_amount)
    else:
        one_third_of_the_amount = round(one_third_of_the_amount,2)
    txt_prepayment.insert(0,str(one_third_of_the_amount))

lbl_amount = tk.Label(tab_1,text='Amount',font=('Tahoma',18))
lbl_amount.grid(column=0,row=0)
txt_amount = tk.Entry(tab_1,font=('Tahoma',18))
txt_amount.grid(column=1,row=0)

lbl_prepayment = tk.Label(tab_1,text='Prepayment',font=('Tahoma',18))
lbl_prepayment.grid(column=0,row=1)
txt_prepayment = tk.Entry(tab_1,font=('Tahoma',18))
txt_prepayment.grid(column=1,row=1)

lbl_installments = tk.Label(tab_1,text='installments',font=('Tahoma',18))
lbl_installments.grid(column=0,row=2)
txt_installments = tk.Entry(tab_1,font=('Tahoma',18))
txt_installments.grid(column=1,row=2)

btn_run = ttk.Button(tab_1,text='Run',font=('Tahoma',18),background='white',command=run)
btn_run.grid(column=1,row=3)

lbl_each_month = tk.Label(tab_1,text='each month',font=('Tahoma',20))
lbl_each_month.grid(column=0,row=4)
txt_each_month = tk.Entry(tab_1,font=('Tahoma',20))
txt_each_month.grid(column=1,row=4)

btn_clear = ttk.Button(tab_1,text='clear',background='white',font=('Tahoma',18),command=clear)
btn_clear.grid(column=1,row=5)

btn_one_third = ttk.Button(tab_1,text='1/3',background='white',font=('Tahoma',18),command=one_third)
btn_one_third.grid(column=2,row=1)

lbl_note = tk.Label(tab_1,text='The added percentage is 3% per month!',font=('Tahoma',18))
lbl_note.grid(column=1,row=7)

lbl_mixer = tk.Label(tab_2,text='Mixer : ',font=('Tahoma',16))
lbl_mixer.grid(column=0,row=0)
lbl_mixer_price = tk.Label(tab_2,text='3200000',font=('Tahoma',16))
lbl_mixer_price.grid(column=1,row=0)

lbl_pro_agitator = tk.Label(tab_2,text='Pro agitator : ',font=('Tahoma',16)).grid(column=0,row=1)
lbl_pro_agitator_price = tk.Label(tab_2,text='4400000',font=('Tahoma',16)).grid(column=1,row=1)

lbl_toaster = tk.Label(tab_2,text='Toaster : ',font=('Tahoma',16)).grid(column=0,row=2)
lbl_toaster_price = tk.Label(tab_2,text='2400000',font=('Tahoma',16)).grid(column=1,row=2)

lbl_food_processor = tk.Label(tab_2,text='4-function food processor : ',font=('Tahoma',16)).grid(column=0,row=3)
lbl_food_processor_price = tk.Label(tab_2,text='7800000',font=('Tahoma',16)).grid(column=1,row=3)

lbl_fast_cooker = tk.Label(tab_2,text='Geepas fast cooker : ',font=('Tahoma',16)).grid(column=0,row=4)
lbl_fast_cooker_price = tk.Label(tab_2,text='7300000',font=('Tahoma',16)).grid(column=1,row=4)

lbl_citrus_juicer = tk.Label(tab_2,text='Citrus juicer : ',font=('Tahoma',16)).grid(column=0,row=5)
lbl_citrus_juicer_price = tk.Label(tab_2,text='3700000',font=('Tahoma',16)).grid(column=1,row=5)

window.mainloop()
python tkinter ttk
1个回答
0
投票

只要您的按钮不显示颜色和正确的字体,简单的解决方法是您需要将按钮从

... = ttk.Button(tab_1,...)

... = tk.Button(tab_1,...)

这应该可以修复按钮的样式

© www.soinside.com 2019 - 2024. All rights reserved.