所以我想要一个可滚动的列。里面会有很多元素。除此之外,还有两张将印刷matplotlib图形的画布。
layout = [[sg.Column(layout, vertical_scroll_only=True, scrollable=True,size=(800,400))]]
我现在明白了,这为宽度为800、高度为400的列保留了空间。您可以在其中滚动元素的分配空间。
[sg.Button("Load CSVs", key="-loadcsv-")],
[sg.Canvas(key='-CANVAS2-' ),sg.InputText(size=(10,1),key="threshold"), sg.Button("Set Threshold", key="-threshold-")],
[sg.InputText(size=(50, 1), key='-MODELNAME-'), sg.FileBrowse("Load Model")]
这是列中的一部分内容。我知道我可以为画布保留空间,这样在绘制图形之前它就有了一些空间,但我不想要那种外观。而且画布之后的东西仍然会被推离可见空间。
如何分配列中的空间?
编辑:我正在添加两张图片,第一张是初始布局:
这是插入matplotlib图形时发生的情况。有些只是被消灭了。我知道我可以预先分配画布的大小,但是我不喜欢最初的布局。
1条答案
按热度按时间mfuanj7w1#
设置大小
sg.Canvas
符合Matplotlib
,您最好指定一个选项figsize
及dpi
,则可以得到大小为(figsize[0]*dpi,figsize[1]*dpi)。方法
sg.pin
就是保持sg.Canvas
当看不见的时候。window['-CANVAS-'].Widget.pack()
就是让它在任何时候都可见update
方法sg.Canvas
.方法
contents_changed
调用以更新的滚动条sg.column
在这里window.refresh()
需要在更新之前更新gui。