问题描述
我还没有找到实现以下目标的方法:
在示例代码中的,当调整窗口大小时,中间的分隔符应与窗口大小的更改一起移到右侧。左侧的列(其中包含表格)应调整大小,表格也应调整。
在PySimpleGui中执行这些操作的一般过程是什么?
import PySimpleGUI as sg
mk = ["irgendwas"]
first_column = [
[sg.Text("Text:")],[sg.Text("Content of Table")],[sg.Table(values=[['1','2','3','4'],['1','4']],headings=['one','two','three','four'],max_col_width=25,# background_color='light blue',auto_size_columns=True,justification='right',num_rows=20,key='-UMSATZTABLE-',row_height=20)],[sg.Button('SUBMIT',key="-SUBMIT-")],]
second_column = [[
sg.Frame(layout=[
[sg.Text("BText:"),sg.InputText(size = (20,1),key="-AKT_BUCHUNGSTEXT-")],],title='actual:',element_justification='right',pad=(0,0)),[sg.Frame(layout=[
[sg.Text("Man Kat:"),sg.Combo(mk,enable_events=True,key='-MANUELLEKATEGORIEN-')],title='Aenderung:'),]
]
#col1 = sg.Col(first_column)
#col2 = sg.Col(second_column)
#layout = [[sg.Pane([col1,col2],handle_size=15,orientation='h',background_color='red',show_handle=True,visible=True,key='-PANE-',border_width=0,relief=sg.RELIEF_GROOVE)]]
layout = [
[sg.Column(first_column),sg.VSeperator(pad=(0,sg.Column(second_column),]
]
window = sg.Window("Umbuchungen",layout,auto_size_text=True,auto_size_buttons=True,resizable=True,grab_anywhere=False,border_depth=5,default_element_size=(15,finalize=True)
window["-UMSATZTABLE-"].expand(True,True)
window["-UMSATZTABLE-"].table_frame.pack(expand=True,fill='both')
while True:
event,values = window.read()
if event == "Exit" or event == sg.WIN_CLOSED:
break
elif event == "-MONATRET-":
if str.isdigit(values["-MONAT-"]):
# k.name as kategorie,substring(u.buchtext,1,45) as buchtext,u.betrag,valuta,u.pos
umsatzrows=ga_helper_funcs.get_monthly_revenue(db,values["-MONAT-"])
#pos,buchtext,betrag
positionen = [[i[4],i[1][0:10],i[3],i[2]] for i in umsatzrows]
window["-UMSATZTABLE-"].update(positionen)
解决方法
为了获得我认为您想要的效果,您需要展开第一列和表格。
col1 = sg.Column(first_column)
layout = [
[col1,sg.VSeperator(pad=(0,0)),sg.Column(second_column),]
]
window = sg.Window("Umbuchungen",layout,auto_size_text=True,auto_size_buttons=True,resizable=True,grab_anywhere=False,border_depth=5,default_element_size=(15,1),finalize=True)
col1.expand(True,True)
添加 col1.expand() 确实是您看到它工作所需的全部内容,但您的表格也为 col 宽度设置了最大值,因此可能需要进行更多调整。
{{3}}