您好,我正在学习 python tkinter 库,并着手制作一个计算器。我的程序使用一个条目作为文本字段,但允许用户在其中写入,我想要的是只有按钮起作用而你不能写,所以我使用了标签,标签的问题是文本它居中显示,我希望它位于标签的左侧。所以这就是我想知道的:如何将文本定位在标签的左侧?在这里我留下代码:
import tkinter as tk
def btn_click(numbers):
global operador
operador=operador + str(numbers)
var.set(operador)
def btn_clear_display():
global operador
operador=""
var.set(operador)
def btn_equals_input():
global operador
try:
sumup=str(eval(operador))
except ZeroDivisionError:
operador="0"
var.set(operador)
operador = ""
else:
var.set(sumup)
operador = sumup
def btn_erase():
global operador
operador = operador[:temp - 1]
var.set(operador)
ventana = tk.Tk()
ventana.title("")
ventana.geometry('215x250')
operador=""
var = tk.StringVar()
temp = len(operador)
display = tk.Label(ventana, bg = "white" ,textvariable = var, width = 20).place(x = 20, y = 20)
b1 = tk.Button(ventana, text = "1", command=lambda:btn_click(1), fg = "black", width = 3).place(x = 20, y = 80)
b2 = tk.Button(ventana, text = "2", command=lambda:btn_click(2), fg = "black", width = 3).place(x = 55, y = 80)
b3 = tk.Button(ventana, text = "3", command=lambda:btn_click(3), fg = "black", width = 3).place(x = 90, y = 80)
b4 = tk.Button(ventana, text = "4", command=lambda:btn_click(4), fg = "black", width = 3).place(x = 20, y = 115)
b5 = tk.Button(ventana, text = "5", command=lambda:btn_click(5), fg = "black", width = 3).place(x = 55, y = 115)
b6 = tk.Button(ventana, text = "6", command=lambda:btn_click(6), fg = "black", width = 3).place(x = 90, y = 115)
b7 = tk.Button(ventana, text = "7", command=lambda:btn_click(7), fg = "black", width = 3).place(x = 20, y = 150)
b8 = tk.Button(ventana, text = "8", command=lambda:btn_click(8), fg = "black", width = 3).place(x = 55, y = 150)
b9 = tk.Button(ventana, text = "9", command=lambda:btn_click(9), fg = "black", width = 3).place(x = 90, y = 150)
b0 = tk.Button(ventana, text = "0", command=lambda:btn_click(0), fg = "black", width = 3).place(x = 55, y = 185)
boton_suma = tk.Button(ventana, text = "+", command=lambda:btn_click("+"), fg = "black", width = 2).place(x = 130, y = 80)
boton_resta = tk.Button(ventana, text = "-", command=lambda:btn_click("-"), fg = "black", width = 2).place(x = 155, y = 80)
boton_multi = tk.Button(ventana, text = "x", command=lambda:btn_click("*"), fg = "black", width = 2).place(x = 130, y = 115)
boton_divi = tk.Button(ventana, text = "/", command=lambda:btn_click("/"), fg = "black", width = 2).place(x = 155, y = 115)
boton_elevar = tk.Button(ventana, text = "elevar", command=lambda:btn_click("**"), fg = "black", width = 5).place(x = 130, y = 150)
boton_equals = tk.Button(ventana, text = "=", command=btn_equals_input, fg = "black", width = 5).place(x = 130, y = 185)
boton_clear = tk.Button(ventana, text = "C", command=btn_clear_display, fg = "black", width = 3).place(x = 20, y = 185)
boton_erase = tk.Button(ventana, text = "<--", command=btn_erase, fg = "black", width = 3).place(x = 90, y = 185)
ventana.mainloop()
它使用参数
anchor
,该参数指示文本或图像应放置在Label
. 允许值参考基点:tk.N
(或'n
')tk.NE
(或'ne'
)tk.E
(或'e'
)tk.SE
(或'se'
)tk.S
(或's'
)tk.SW
(或'sw'
)tk.W
(或'w'
)tk.NW
(或'nw'
)tk.CENTER
(或'center'
)默认为
tk.CENTER
。因此安排如下:在您的情况下,您应该使用: