PySimpleGUI 强制文本框旁边的日历框
PySimpleGUI force calendar box next to text box
我有一个 GUI,输出弹出式日历中所选日期的文本框不在日历按钮旁边,这不是我想要的,理想情况下它们应该并排。
代码:
import PySimpleGUI as sg
import datetime
from datetime import date
columns = ["TYPE","DIRECTION","DATE","OPTION"]
param = (20,3) # size of the main window
def GUI():
sg.theme('Dark Brown 1')
listing = [sg.Text(u, size = param) for u in columns]
core = [
sg.Listbox(['ETF', 'EQT', 'FUT', 'OPT', 'BOND'],enable_events=False,key='_PLAYERS20_',size = (20,2)),
sg.Listbox( ['B', 'S'],size = (20,1),enable_events=False,key='_PLAYERS12_'),
sg.CalendarButton('Calendar', pad=None, font=('MS Sans Serif', 10, 'bold'),
button_color=('yellow', 'brown'), format=('%d/%m/%Y'), key='_CALENDAR_', target='_INP_'),
sg.Listbox(['C', 'P', 'N/A'],size = param)]
mesh = [[x,y] for (x,y) in list(zip(listing, core))]
mesh[3].append(sg.Input(size = (10,2),key = '_INP_'))
layout =[[sg.Button("SEND"),sg.Button("NEW_NAME"), sg.Button("NEW_STRAT"), sg.Button("NEW_UND")] ]+ mesh
window = sg.Window('Trade Entry System', layout, font='Courier 12').Finalize()
while True:
event, values = window.read()
if event == "SEND":
break
elif event == "NEW_NAME" :
continue
elif event == "NEW_STRAT":
continue
elif event == "NEW_UND":
continue
else:
print("OVER")
break
window.close()
GUI()
Python 从 0 开始计数,所以您的日历按钮是元素 2,而不是元素 3。
mesh[2].append(sg.Input(size = (10,2),key = '_INP_'))
[0] sg.Listbox( ['ETF', 'EQT', 'FUT', 'OPT', 'BOND'], ... ),
[1] sg.Listbox( ['B', 'S'], ... ),
[2] sg.CalendarButton( 'Calendar', ... ),
[3] sg.Listbox( ['C', 'P', 'N/A'], ... ]
我有一个 GUI,输出弹出式日历中所选日期的文本框不在日历按钮旁边,这不是我想要的,理想情况下它们应该并排。
代码:
import PySimpleGUI as sg
import datetime
from datetime import date
columns = ["TYPE","DIRECTION","DATE","OPTION"]
param = (20,3) # size of the main window
def GUI():
sg.theme('Dark Brown 1')
listing = [sg.Text(u, size = param) for u in columns]
core = [
sg.Listbox(['ETF', 'EQT', 'FUT', 'OPT', 'BOND'],enable_events=False,key='_PLAYERS20_',size = (20,2)),
sg.Listbox( ['B', 'S'],size = (20,1),enable_events=False,key='_PLAYERS12_'),
sg.CalendarButton('Calendar', pad=None, font=('MS Sans Serif', 10, 'bold'),
button_color=('yellow', 'brown'), format=('%d/%m/%Y'), key='_CALENDAR_', target='_INP_'),
sg.Listbox(['C', 'P', 'N/A'],size = param)]
mesh = [[x,y] for (x,y) in list(zip(listing, core))]
mesh[3].append(sg.Input(size = (10,2),key = '_INP_'))
layout =[[sg.Button("SEND"),sg.Button("NEW_NAME"), sg.Button("NEW_STRAT"), sg.Button("NEW_UND")] ]+ mesh
window = sg.Window('Trade Entry System', layout, font='Courier 12').Finalize()
while True:
event, values = window.read()
if event == "SEND":
break
elif event == "NEW_NAME" :
continue
elif event == "NEW_STRAT":
continue
elif event == "NEW_UND":
continue
else:
print("OVER")
break
window.close()
GUI()
Python 从 0 开始计数,所以您的日历按钮是元素 2,而不是元素 3。
mesh[2].append(sg.Input(size = (10,2),key = '_INP_'))
[0] sg.Listbox( ['ETF', 'EQT', 'FUT', 'OPT', 'BOND'], ... ),
[1] sg.Listbox( ['B', 'S'], ... ),
[2] sg.CalendarButton( 'Calendar', ... ),
[3] sg.Listbox( ['C', 'P', 'N/A'], ... ]