Я пытаюсь разместить панель изображения на форме, чтобы при нажатии кнопки изображение 64x64, которое помещается на панель при запуске программы, заменялось изображением большего размера 320x224 - размеры пикселов не так важныкак они бывают разных размеров.Я ПОЧТИ получил его - прямо сейчас изображения загружаются, и он действительно поднимает второе при нажатии кнопки - к сожалению, это верхние левые 64x64 второго изображения, а не все.
Этодолжна быть возможность изменить размер панели, чтобы можно было просматривать все изображение?Вот мой код как есть:
#First we create our form elements. This app has a label on top of a button, both below a panel with an image on it, so we create a sizer and the elements
self.v_sizer = wx.BoxSizer(wx.VERTICAL)
self.imagePanel = wx.Panel(self, -1)
self.FileDescriptionText = wx.StaticText(self, label="No file loaded")
self.openFileDialog = wx.Button(self, label="Load a file", size=(320,40))
#Bind the button click to our press function
self.openFileDialog.Bind(wx.EVT_BUTTON, self.onOpenFileDialog)
#That done, we need to construct the form. First, put the panel, button and label in the vertical sizer...
self.v_sizer.Add(self.imagePanel, 0, flag=wx.ALIGN_CENTER)
self.v_sizer.Add(self.openFileDialog, 0, flag=wx.ALIGN_CENTER)
self.v_sizer.Add(self.ROMDescriptionText, 0, flag=wx.ALIGN_CENTER)
#then assign an image for the panel to have by default, and apply it
self.imageToLoad = wx.Image("imgs/none_loaded.png", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.imageCtrl = wx.StaticBitmap(self.imagePanel, -1, self.imageToLoad, (0, 0), (self.imageToLoad.GetWidth(), self.imageToLoad.GetHeight()))
#Set the sizer to be owned by the window
self.SetSizer(self.v_sizer)
#Set the current window size to the size of the sizer
self.v_sizer.Fit(self)
#Set the Minimum size of the window to the current size of the sizer
self.SetMinSize(self.v_sizer.GetMinSize())
def onOpenFileDialog(self, event):
img = wx.Image("imgs/title.png", wx.BITMAP_TYPE_ANY)
self.imageCtrl.SetBitmap(wx.BitmapFromImage(img))
self.imagePanel.Refresh()
(он называется onOpenFileDialog, так как в конечном итоге он будет выбирать изображения из пути со списком.)
Как я могу отредактировать метод onOpenFileDialog, напримерсначала находит размер изображения, как это происходит в строке self.imageCtrl при создании начального элемента формы?Я не могу найти способ сделать это.