在我的应用程序中,我试图将按钮、文本和输入放在窗口的中心。我使用PySimpleGUI设计按钮。为了对齐中心,我在代码中使用了justification='center'
属性。但它仍然不适合窗口的中心。
我使用的代码是
import PySimpleGUI as sg
from tkinter import *
sg.theme('DarkAmber')
layout = [
[sg.Text('Enter the value',justification='center')],
[sg.Input(justification='center')],
[sg.Button('Enter','center')]
]
window = sg.Window('My new window', layout, size=(500,300), grab_anywhere=True)
while True:
event, values = window.read() # Read the event that happened and the values dictionary
print(event, values)
if event == sg.WIN_CLOSED or event == 'Exit': # If user closed window with X or if user clicked "Exit" button then exit
break
if event == 'Button':
print('You pressed the button')
window.close()
上面的代码输出
我怎样才能使文本,按钮和输入到窗口的中心?
5条答案
按热度按时间kgsdhlau1#
我想这就是你要找的
编辑-垂直居中(更好的解决方案见下文2022年3月编辑)
在窗口中垂直居中布局是一件相当麻烦的事情。需要的是两个元素,当窗口扩展时,它们会扩展。这是一个演示程序,是PySimpleGUI GitHub上演示的一部分
2022年3月18日
就像PySimpleGUI中的许多东西一样,像元素调整这样的操作也在不断地发展。StackOverflow的问题是这些答案通常不会更新。这就是为什么我建议总是使用GitHub Issues来提问,并检查Cookbook、eCookbook和Demo Programs来获得最新的技术。
去年引入了两个新元素,使水平和垂直对齐变得微不足道。这两个元素是
Push
和VPush
。你可以在eCookbook中找到一个食谱。这些元素“推动”周围的其他元素。
Push
水平移动它们,VPush
垂直移动它们。如果您在元素/行的两侧都按下按钮,则这些元素/行将居中。
除了使用
Push
和VPush
元素外,布局与上例相同。这个解决方案更短,更容易理解。0g0grzrc2#
此代码使文本、按钮和输入位于窗口的中心。
yks3o0rb3#
最好的一个应该是容器
sg.Column
的选项element_justification='center'
,可能不是所有的元素都需要对齐窗口的中心。ilmyapht4#
如果希望更直接地控制元素的显示位置,可以在几乎所有元素(button、text、in等)中使用
pad
关键字。有两种有效格式:
pad=(<int>, <int>)
,其中pad[0]
是向左和向右填充,pad[1]
是向上和向下填充元素。pad=((<int>, <int>), (<int>, <int>))
,其中第一元组向左(第一元素)和向右(第二元素)填充,并且第二元组向上(第一)和向下(第二)填充。因此,要使用
pad
关键字在代码示例中将元素居中,您需要执行以下操作:注:上述代码与原始代码略有不同,以匹配PEP8标准。
结果是:
gj3fmq9x5#
我相信最简单的解决方案是在按钮的左侧插入一个空白标签。