【问题标题】:Button sizes for my calculator Python Tkinter我的计算器 Python Tkinter 的按钮大小
【发布时间】:2013-04-09 18:05:32
【问题描述】:

我是 python 和 tkinter 的新手。在过去的几天里,我一直在看和研究一些教程,我的第一个项目是一个计算器。

在某个地方有点困惑。如果有人可以请告诉我如何使“0”按钮填补“。”之间的空白。按钮。还希望“+/-”与列的其余部分均匀匹配。

我在另一个类似的问题中看到一个人给出了答案

button1.config( height = WHATEVER, width = WHATEVER2 )

由于我将按钮放置在网格中,我可以实现它吗?如何实现?

bttn_0 = Button(calc, text = "0")
bttn_0["command"] = lambda: sum1.num_press(0)
bttn_0.grid(row = 5, column = 0, pady = 5)

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    F3AR3DLEGEND 不正确,您可以使用grid 获得想要的效果。您需要使用 columnspan 关键字来使小部件跨越多个列,例如

    bttn_0.grid(row = 5, column = 0, pady = 5, columnspan = 2)
    

    例如,请参阅here

    【讨论】:

    • 哈哈哈不撒谎我只是回到这里说我使用了列跨度。我环顾四周,发现我之前在文本框“face palm”上使用了 columnspan。但是非常感谢你们,我对现在的布局非常满意。
    【解决方案2】:

    要将“.”旁边的零设置为 2,请将 columnspan 设置为 2。您可能还希望将顶部条目小部件的列跨度设置为 4,以便它正好适合四列按钮(并设置sticky 以获得完美对齐)。

    您无法让 +/- 按钮与其他按钮均匀匹配,因为它更宽。但是,您可以使其他按钮适合 +/- 按钮。如果您使用sticky="ew",按钮的宽度将全部扩大以填满它们的列(即:它们将“粘”在单元格的东侧和西侧)。

    【讨论】:

    • 一切都很好。 “pady = 5, padx =5)” 在所有按钮上,我将所有按钮的宽度和高度设置为 1。 +/- 按钮现在非常适合。现在我想弄清楚如何绑定我的键,而不必指向并单击每个数字。但除此之外,它的进展非常好。我会上传一张照片。
    【解决方案3】:
    bttn_0 = Button(calc, text = "0", height = my_height, width = my_width)
    

    要填补空白,只需尝试几个不同的值,或者根据窗口的宽度和每个其他按钮(在该行中)的宽度来计算。

    【讨论】:

    • 太棒了,我喜欢。它可以调整按钮的大小,但它保持在该列的中心。我添加了一张图片作为示例。
    • @AndrewH 除非您使用不同的布局方法(例如.pack())或更改按钮大小,否则您无法更改它。如果您希望 0 按钮位于 1 和 2 按钮下方的中心(我认为您希望这样做),则必须尝试使用​​不同的(父/子)框架。
    • 我就是这么想的。谢谢你帮我解决这个问题。
    • “尝试几个不同的值”不是很科学,也不能真正解决问题,它(可能)只是掩盖了它。 grid 实际上是解决这个问题的完美几何管理器 - 使用 pack 和嵌套框架只会使问题更难维护。
    • @BryanOakley 我实际上的意思是使用.grid() 和几帧(不太难维护)但没关系。无论如何,我不知道columnspan,所以这对我来说也是一个学习经历:)
    猜你喜欢
    • 2021-03-27
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多