Python 使用pysimplegui将按钮与窗口中心对齐
在我的应用程序中,我试图将我的按钮、文本和输入放在窗口的中心。我使用PySimpleGUI设计按钮。为了对齐中心,我在代码上使用了Python 使用pysimplegui将按钮与窗口中心对齐,python,user-interface,pysimplegui,Python,User Interface,Pysimplegui,在我的应用程序中,我试图将我的按钮、文本和输入放在窗口的中心。我使用PySimpleGUI设计按钮。为了对齐中心,我在代码上使用了justification='center'属性。但它仍然不适合窗口的中心 import PySimpleGUI as sg sg.theme('DarkAmber') layout = [ [sg.Text('Enter the value',justification='center',size=(100,1))], [sg.
justification='center'
属性。但它仍然不适合窗口的中心
import PySimpleGUI as sg
sg.theme('DarkAmber')
layout = [
[sg.Text('Enter the value',justification='center',size=(100,1))],
[sg.Input(justification='center',size=(100,1))],
[sg.Button('Enter','center',size=(100,1))]
]
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 == None 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()
我使用的代码是
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()
上述代码输出
如何将文本、按钮和输入置于窗口的中心?此代码将文本、按钮和输入置于窗口的中心
import PySimpleGUI as sg
sg.theme('DarkAmber')
layout = [
[sg.Text('Enter the value',justification='center',size=(100,1))],
[sg.Input(justification='center',size=(100,1))],
[sg.Button('Enter','center',size=(100,1))]
]
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 == None 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()
我想这就是你要找的
window=sg.window('My new window',布局,元素\'c')
编辑-垂直居中 在窗口中垂直居中布局是一件相当麻烦的事。所需的是当窗口展开时将展开的两个元素。这是一个演示程序,是PySimpleGUI GitHub上演示的一部分
将PySimpleGUI导入为sg
"""
在窗口中使柱居中
解决一种非常特殊的布局。
如果你想让一些东西在窗口中居中,这是一个很好的方法
这里的“诀窍”是:
*布局的第一行有一个垂直展开的文本元素
*包含列的行具有水平展开的文本元素
此展开文本元素将导致Column元素居中
经允许使用
"""
def main():
列要居中=[[sg.Text(“我的窗口”)],
[sg.Input(key='-IN-')],
[sg.Text(大小=(12,1),键='-OUT-')],
[sg.按钮('Go')、sg.按钮('Exit')]]
布局=[[sg.Text(key='-EXPAND-',font='ANY 1',pad=(0,0))],从顶部展开的东西
[sg.Text('',pad=(0,0),key='-EXPAND2-'),#从左边展开的东西
sg.柱(柱居中,垂直对齐居中,对正居中,k='-C-')]]
window=sg.window('windowtitle',layout,resizeable=True,finalize=True)
窗口['-C-']。展开(True,True,True)
窗口['-EXPAND-']。展开(True,True,True)
窗口['-EXPAND2-']。展开(真、假、真)
为True时:#事件循环
事件,值=window.read()
打印(事件、值)
如果事件==sg.WIN\u关闭或事件==退出:
打破
如果事件=='Go':
窗口['-OUT-']。更新(值['-IN-'])
window.close()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()
对于容器sg.Column
,最好的选项应该是element\u justification='center'
,可能不是所有的元素都需要对齐窗口的中心
将PySimpleGUI导入为sg
sg.主题(“达坎伯”)
布局_列=[
[sg.Text('输入值',对正='中心')],
[sg.Input(对正='center',key='-Input-')],
[sg.按钮('Enter')]
]
布局=[[sg.Column(布局列,元素对齐='center')]]
window=sg.window('My new window',layout,grab\u anywhere=True)
尽管如此:
事件,值=window.read()
打印(事件、值)
如果事件==sg.WIN\u关闭或事件==退出:
打破
如果事件=='按钮':
打印('您按下了按钮')
window.close()
如果您想更直接地控制元素的显示位置,可以在几乎所有元素(按钮、文本、输入等)中使用pad
关键字
有两种有效格式:
其中pad=(,)
是向左和向右填充 而pad[0]
是元素上方和下方的填充pad[1]
第一个元组所在的位置 向左(第一个元素)和向右(第二个元素)填充,以及 第二个元组在上面(第一个)和下面(第二个)填充pad=(,),(,)
pad
关键字将代码示例中的元素居中,可以执行以下操作:
import PySimpleGUI as sg
sg.theme('DarkAmber')
layout = [
[sg.Text('Enter the value', pad=(190, 0))],
[sg.Input(justification='center', pad=(75, 0))],
[sg.Button('Enter', pad=(215, 0))]
]
window = sg.Window('My new window', layout,
size=(500, 300), grab_anywhere=True)
while True:
# Read the event that happened and the values dictionary
event, values = window.read()
print(event, values)
# If user closed window with X or if user clicked "Exit" button then exit
if event == sg.WIN_CLOSED or event == 'Exit':
break
if event == 'Button':
print('You pressed the button')
window.close()
注:上述代码与原始代码略有改动,以符合PEP8标准
结果是:
@BharGav Desai-该代码不会将按钮居中,而是将文本居中放置在全宽按钮内。如果您将按钮设置为eg大小(10,1),它仍然位于屏幕左侧。需要元素_justion='c'将按钮置于屏幕中央,但这会使所有内容居中。理想情况下,我希望能够在一个框架内使按钮居中,但在同一窗口内的不同框架内使文本输入左对齐和/或右对齐。应该是错误的代码,
sg.Button
的第二个参数用于按钮类型
。所有元素都没有对齐窗口的中心。可以查看项目GitHub上的演示程序“demo\u Layout\u Vertical\u Centered.py”。另外,您还可以在整个布局列表中使用sg.Column(Layout,justification='c')
对单个元素进行对齐。并非每件事都需要居中论证。