我的wxPython項目有一個框架,具有多個嵌套的大小。wxpython:自動調整大小以適應大小的靜態圖像(staticbitmap)
其中一個sizer包含一個wxStaticImage,它具有從文件讀取的位圖。
每次調整幀大小時,我都需要調整圖像的大小(增大/縮小),因此它將適合sizer的邊界。
(我認爲)我知道如何調整圖像大小。我不知道是如何:
- 如何獲取圖像的容器的寬度或高度?
- 也許我忽略了一個屬性,它auitmatically?
(現在,我不介意的比例)
編輯:完整的解決方案
我理解錯了wxStaticBitmapin.Size。它沒有描述圖像0(即圖像分辨率)的大小,而是 - wxStaticBitmapin.Size給出了sizer的插槽尺寸,換句話說:當前小部件的尺寸。
所以用Mik的代碼我現在該如何適應插槽。
除了mike的解決方案:在幀上使用onSize事件時,不要忘記添加event.skip()。否則sizer將停止重新排列。別無選擇,只需使用圖像的onSize即可。
這裏是完整的事件方法:
def bitmap1_onSize(self, e=None):
W, H = self.bitmap1.Size
if W > H:
NewW = W
NewH = W * H/W
else:
NewH = H
NewW = H * W/H
img = wx.Image(self.frame_file_picker.Path, wx.BITMAP_TYPE_ANY)
img = img.Scale(NewW,NewH)
self.bitmap1.SetBitmap(wx.BitmapFromImage(img))
e.Skip()
我想知道現在有派生類實現了這一點。我認爲這個用例並不是那麼不尋常。 – buhtz