【问题标题】:How to make tkinter button widget take up full width of grid如何使 tkinter 按钮小部件占据整个网格宽度
【发布时间】:2017-08-28 13:35:39
【问题描述】:

我试过this,但没有帮助。

我正在制作一个计算器程序。到目前为止,我已经做到了:

from tkinter import *
window = Tk()

disp = Entry(window, state='readonly', readonlybackground="white")
disp.grid(column=0, row=0, columnspan=4)
#row 1
seven = Button(window, text="7", command=Seven)
seven.grid(column=1,row=1)

eight = Button(window, text="8", command=Eight)
eight.grid(column=2,row=1)

nine = Button(window, text="9", command=Nine)
nine.grid(column=3,row=1)

divide = Button(window, text="÷", command=Divide)
divide.grid(column=4,row=1)

#row 2

four = Button(window, text="4", command=Four)
four.grid(column=1,row=2)

five = Button(window, text="5", command=Five)
five.grid(column=2,row=2)

six = Button(window, text="6", command=Six)
six.grid(column=3,row=2)

multiply = Button(window, text="×", command=Multiply)
multiply.grid(column=4,row=2)

#row 3

one = Button(window, text="1", command=One)
one.grid(column=1,row=3)

two = Button(window, text="2", command=Two)
two.grid(column=2,row=3)

three = Button(window, text="3", command=Three)
three.grid(column=3,row=3)

minus = Button(window, text="-", command=Minus)
minus.grid(column=4,row=3)

#row 4

zero = Button(window, text="0", command=Zero)
zero.grid(column=1,row=4)

dec = Button(window, text=".", command=Dec)
dec.grid(column=2,row=4)

equal = Button(window, text="=", command=Equal)
equal.grid(column=3,row=4)

add = Button(window, text="+", command=Add)
add.grid(column=4,row=4)

window.mainloop()

看起来像这样:

我希望这些框的宽度相同,并填满可用空间。 结果应该类似于:

如何让按钮占据行/列的整个宽度?

【问题讨论】:

    标签: python button tkinter


    【解决方案1】:

    两件事:

    1. 您将输入框设置为从第 0 列开始应用,但随后的每一行都从第 1 列开始运行。在此保持一致 - 您的 7 按钮应位于第 0 列、第 8 列 1 等中。
    2. 当您.grid 按钮时,请使用sticky=N+S+E+W。这将允许按钮以各自的行和列大小展开。

    更新: N+S+E+W 不适用于 python3.6.7 它是 nesw 或这 4 个字母的任意组合。

    例如:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    from tkinter import *
    window = Tk()
    
    disp = Entry(window, state='readonly', readonlybackground="white")
    disp.grid(column=0, row=0, columnspan=4)
    #row 1
    seven = Button(window, text="7")
    seven.grid(column=0,row=1, sticky='nesw')
    
    eight = Button(window, text="8")
    eight.grid(column=1,row=1, sticky='nesw')
    
    nine = Button(window, text="9")
    nine.grid(column=2,row=1, sticky='nesw')
    
    divide = Button(window, text="÷")
    divide.grid(column=3,row=1, sticky='nesw')
    
    window.mainloop()
    

    返回一个看起来像这样的窗口:

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 1970-01-01
      • 2020-11-29
      • 2022-06-18
      • 2013-08-29
      • 2020-02-17
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多