【问题标题】:How can I change the button of a calculator app in Tkinter?如何在 Tkinter 中更改计算器应用程序的按钮?
【发布时间】:2017-08-15 13:35:30
【问题描述】:

我一直在用 Tkinter 为计算器做一个 python 应用程序。我想知道如何通过使用字符串来访问按钮属性,例如它们的大小、高度、宽度和颜色。到目前为止,我已经能够使用 style.configure("TButton", background='red', 字体="衬线 15", 填充=10 )。

如何更改按钮本身?如果有人可以帮助我,我将不胜感激。

from tkinter import *
from tkinter.ttk import *
from tkinter import ttk

class Calculator:

    calc_value = 0.0

    div_trigger = False
    mult_trigger = False
    add_trigger = False
    sub_trigger = False

    def __init__(self,root):

        self.entry_value = StringVar(root,value="")

        root.title("Calculator")


        root.geometry("600x500")

        root.resizable(width=True, height=True)

        style = ttk.Style()

        style.configure(self, background='red')
        style.configure("TButton", #background='red',
                        font="Serif 15",
                        padding=10 )
        style.configure("TEntry",
                        font="Serif 15",
                        padding=10 )
        self.number_entry = ttk.Entry(root, 
                        textvariable=self.entry_value,width=50)
        self.number_entry.grid(row=0, columnspan=4)

        #-------1st row---------

        self.button7 = ttk.Button(root, text="7",
             command=lambda: self.button_press('7')).grid(row=1, column=0)


        self.button8 = ttk.Button(root, text="8",
             command=lambda: self.button_press('8')).grid(row=1, column=1)

        self.button9 = ttk.Button(root, text="9",
             command=lambda: self.button_press('9')).grid(row=1, column=2)

        self.button_div = ttk.Button(root, text="/",
        command=lambda: self.button_press('/')).grid(row=1, column=3)

        #-------2nd row---------

        self.button4 = ttk.Button(root, text="4",
             command=lambda: self.button_press('4')).grid(row=2, column=0)

        self.button5 = ttk.Button(root, text="5",
             command=lambda: self.button_press('5')).grid(row=2, column=1)

        self.button6 = ttk.Button(root, text="6",
             command=lambda: self.button_press('6')).grid(row=2, column=2)

        self.button_mult = ttk.Button(root, text="*",
        command=lambda: self.button_press('*')).grid(row=2, column=3)

        #-------3rd row---------

        self.button1 = ttk.Button(root, text="1",
             command=lambda: self.button_press('1')).grid(row=4, column=0)

        self.button2 = ttk.Button(root, text="2",
             command=lambda: self.button_press('2')).grid(row=4, column=1)

        self.button3 = ttk.Button(root, text="3",
             command=lambda: self.button_press('3')).grid(row=4, column=2)

        self.button_add = ttk.Button(root, text="+",
        command=lambda: self.button_press('+')).grid(row=4, column=3)

        #-------4th row---------
        self.button_clear = ttk.Button(root, text="AC",
             command=lambda: self.button_press('AC')).grid(row=5, column=0)

        self.button0 = ttk.Button(root, text="0",
             command=lambda: self.button_press('0')).grid(row=5, column=1)

        self.button_equal = ttk.Button(root, text="=",
             command=lambda: self.button_press('=')).grid(row=5, column=2)

        self.button_sub = ttk.Button(root, text="-",
        command=lambda: self.button_press('-')).grid(row=5, column=3)


root = Tk()
calc = Calculator(root)
root.mainloop()

#button1 = Button(topframe,padx=16, pady=16, bd=8, text="1", fg="black", bg = random.choice(colors))

【问题讨论】:

标签: python user-interface button tkinter calculator


【解决方案1】:

这里有关于此的文档。

http://effbot.org/tkinterbook/button.htm

如果您想更改可以使用的按钮大小。

button1.config(height = 100, width = 100)

【讨论】:

  • OP 没有使用tkinter.Button,而是使用了没有高度选项的ttk.Button
  • 这个答案不能回答 OP 的问题。(tkinter.Button 和 ttk.Button 是不同的东西)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
相关资源
最近更新 更多