我一直在尝试在Multisplitter下插入两个Thubmnailctrl,我已经设法将它们放在那里,但我无法设法使它们占据整个空间。在thumbnailctrl.py上,我看到它的最大大小可能是350x280:
import wx
import os
import cv2
import ctypes
from PIL import Image
from wx.lib.splitter import MultiSplitterWindow
try:
from agw import thumbnailctrl as TC
except ImportError: # if it's not there locally, try the wxPython lib.
import wx.lib.agw.thumbnailctrl as TC
class SamplePane(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.thumbnail11 = TC.ThumbnailCtrl(self, imagehandler=TC.NativeImageHandler, thumboutline=4)
self.thumbnail11.EnableDragging(True)
# self.thumbnail11.SetThumbSize(350, screensize[0] / 15, 25) # For images -> Max values 350,280
# ################VID################ #
topmostSizer = wx.BoxSizer(wx.VERTICAL)
topmostSizer.Add(self.thumbnail11, proportion=0, flag=wx.EXPAND)
self.SetSizer(topmostSizer)
self.MaxSize
# topmostSizer.Fit(self)
class MainFrame(wx.Frame):
""""""
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Elephant")
splitter = MultiSplitterWindow(self, style=wx.SP_LIVE_UPDATE)
# t1Sizer = wx.BoxSizer(wx.VERTICAL)
# self.thumbnail11 = TC.ThumbnailCtrl(splitter, imagehandler=TC.NativeImageHandler, thumboutline=4)
panel = SamplePane(splitter)
splitter.AppendWindow(panel)
panel2 = SamplePane(splitter)
splitter.AppendWindow(panel2)
# t1Sizer.Add(panel, proportion=0, flag=wx.EXPAND)
self.Show()
if __name__ == "__main__":
app = wx.App(False)
frame = MainFrame()
# import wx.lib.inspection
# wx.lib.inspection.InspectionTool().Show()
app.MainLoop()
但另一方面,在ThumbnailCtrl下的演示中,它使用Splitter创建一个你想要的Thumbnailctrl,所以我不知道我做错了什么(可能是Sizer)或者是某些功能来自Splitter(完全不同于multisplitter),它允许Thumbnailctrl占据它的整个空间。
Thumbnailctrl + Splitter演示:
{{1}}
我尝试使用两个缩略图的Multisplitter(当第三个面板上有文字和内容时):
{{1}}
如您所见,有两个缩略图,它们从左向右扩展,但它们的上限为最大高度。
非常感谢您的帮助!
答案 0 :(得分:1)
不是100%确定您尝试使用此功能是什么,但我怀疑您的问题与topmostSizer
的{{1}}属性有关。
尝试:
proportion
从手册:
比例 - 虽然此参数的含义未定义 wx.Sizer,它在wx.BoxSizer中用于指示sizer的子节点 可以在wx.BoxSizer的主方向上改变它的大小 - 在哪里 0表示不可更改,值大于零 解释相对(总数的一部分)与其他的价值 wx.BoxSizer的孩子们。
在这种情况下,您已将topmostSizer.Add(self.thumbnail11, proportion=1, flag=wx.EXPAND)
定义为VERTICAL