隐藏和取消隐藏内容后,内容在 PySimpleGui 中居中
Content gets centered in PySimpleGui after hiding und unhiding content
我正在尝试隐藏和取消隐藏 PySimpleGui 中的内容。这是示例代码。
我怎样才能实现 sg.Frame 在隐藏和取消隐藏框架后居中(通过单击顶部的复选框)?
import PySimpleGUI as sg
frameContent=[]
frameContent.append([sg.Text('Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. ')],)
frameContent.append([sg.Text('Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes,')],)
frameContent.append([sg.Text('nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. ')],)
frameContent2=[]
frameContent2.append([sg.Text('Nulla consequat massa quis enim.')],)
frameContent2.append([sg.Text('Donec pede justo, fringilla vel, ')],)
frameContent2.append([sg.Text('aliquet nec, vulputate eget, arcu.')],)
frameContent3=[]
frameContent3.append([sg.Text('In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. ')],)
frameContent3.append([sg.Text('Integer tincidunt. Cras dapibus.')],)
frameContent3.append([sg.Text('Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.')],)
frameContent4=[]
frameContent4.append([sg.Text('In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. ')],)
frameContent4.append([sg.Text('Integer tincidunt. Cras dapibus.')],)
frameContent4.append([sg.Text('Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.')],)
layout = [
[sg.Checkbox('Tooltips', key="-showTooltips-", enable_events=True)],
[sg.Frame('Frame',frameContent, key='-frame1-',visible=True)],
[sg.Frame('Frame',frameContent2, key='-frame2-',visible=True )],
[sg.Frame('Frame',frameContent3, key='-frame1Tooltips-',visible=False)],
[sg.Frame('Frame',frameContent4, key='-frame2Tooltips-',visible=False )]
]
window = sg.Window('Window Title', layout)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Exit'):
break
if event == '-showTooltips-':
for i in range(1,3):
if values['-showTooltips-']:
window["-frame"+str(i)+'-'].Update(visible=False)
window["-frame"+str(i)+'-'].hide_row()
window["-frame"+str(i)+"Tooltips-"].Update(visible=True)
window["-frame"+str(i)+"Tooltips-"].unhide_row()
else:
window["-frame"+str(i)+'-'].Update(visible=True)
window["-frame"+str(i)+'-'].unhide_row()
window["-frame"+str(i)+"Tooltips-"].Update(visible=False)
window["-frame"+str(i)+"Tooltips-"].hide_row()
window.close()
使用sg.pin
保持位置,hide_row
和unhide_row
不需要
Pin's an element provided into a layout so that when it's made invisible and visible again, it will
be in the correct place. Otherwise it will be placed at the end of its containing window/column.
布局中的代码已更新为
layout = [
[sg.Checkbox('Tooltips', key="-showTooltips-", enable_events=True)],
[sg.pin(sg.Frame('Frame1',frameContent, key='-frame1-',visible=True))],
[sg.pin(sg.Frame('Frame2',frameContent2, key='-frame2-',visible=True))],
[sg.pin(sg.Frame('Frame3',frameContent3, key='-frame1Tooltips-',visible=False))],
[sg.pin(sg.Frame('Frame4',frameContent4, key='-frame2Tooltips-',visible=False))]
]
window = sg.Window('Window Title', layout)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Exit'):
break
if event == '-showTooltips-':
for i in range(1,3):
if values['-showTooltips-']:
window["-frame"+str(i)+'-'].Update(visible=False)
window["-frame"+str(i)+"Tooltips-"].Update(visible=True)
else:
window["-frame"+str(i)+'-'].Update(visible=True)
window["-frame"+str(i)+"Tooltips-"].Update(visible=False)
window.close()
我正在尝试隐藏和取消隐藏 PySimpleGui 中的内容。这是示例代码。 我怎样才能实现 sg.Frame 在隐藏和取消隐藏框架后居中(通过单击顶部的复选框)?
import PySimpleGUI as sg
frameContent=[]
frameContent.append([sg.Text('Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. ')],)
frameContent.append([sg.Text('Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes,')],)
frameContent.append([sg.Text('nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. ')],)
frameContent2=[]
frameContent2.append([sg.Text('Nulla consequat massa quis enim.')],)
frameContent2.append([sg.Text('Donec pede justo, fringilla vel, ')],)
frameContent2.append([sg.Text('aliquet nec, vulputate eget, arcu.')],)
frameContent3=[]
frameContent3.append([sg.Text('In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. ')],)
frameContent3.append([sg.Text('Integer tincidunt. Cras dapibus.')],)
frameContent3.append([sg.Text('Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.')],)
frameContent4=[]
frameContent4.append([sg.Text('In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. ')],)
frameContent4.append([sg.Text('Integer tincidunt. Cras dapibus.')],)
frameContent4.append([sg.Text('Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.')],)
layout = [
[sg.Checkbox('Tooltips', key="-showTooltips-", enable_events=True)],
[sg.Frame('Frame',frameContent, key='-frame1-',visible=True)],
[sg.Frame('Frame',frameContent2, key='-frame2-',visible=True )],
[sg.Frame('Frame',frameContent3, key='-frame1Tooltips-',visible=False)],
[sg.Frame('Frame',frameContent4, key='-frame2Tooltips-',visible=False )]
]
window = sg.Window('Window Title', layout)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Exit'):
break
if event == '-showTooltips-':
for i in range(1,3):
if values['-showTooltips-']:
window["-frame"+str(i)+'-'].Update(visible=False)
window["-frame"+str(i)+'-'].hide_row()
window["-frame"+str(i)+"Tooltips-"].Update(visible=True)
window["-frame"+str(i)+"Tooltips-"].unhide_row()
else:
window["-frame"+str(i)+'-'].Update(visible=True)
window["-frame"+str(i)+'-'].unhide_row()
window["-frame"+str(i)+"Tooltips-"].Update(visible=False)
window["-frame"+str(i)+"Tooltips-"].hide_row()
window.close()
使用sg.pin
保持位置,hide_row
和unhide_row
不需要
Pin's an element provided into a layout so that when it's made invisible and visible again, it will be in the correct place. Otherwise it will be placed at the end of its containing window/column.
布局中的代码已更新为
layout = [
[sg.Checkbox('Tooltips', key="-showTooltips-", enable_events=True)],
[sg.pin(sg.Frame('Frame1',frameContent, key='-frame1-',visible=True))],
[sg.pin(sg.Frame('Frame2',frameContent2, key='-frame2-',visible=True))],
[sg.pin(sg.Frame('Frame3',frameContent3, key='-frame1Tooltips-',visible=False))],
[sg.pin(sg.Frame('Frame4',frameContent4, key='-frame2Tooltips-',visible=False))]
]
window = sg.Window('Window Title', layout)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Exit'):
break
if event == '-showTooltips-':
for i in range(1,3):
if values['-showTooltips-']:
window["-frame"+str(i)+'-'].Update(visible=False)
window["-frame"+str(i)+"Tooltips-"].Update(visible=True)
else:
window["-frame"+str(i)+'-'].Update(visible=True)
window["-frame"+str(i)+"Tooltips-"].Update(visible=False)
window.close()