Вот как мы можем отображать изображение в кадре wxPython.Вертикальное смещение при отображении изображения с помощью wxPython
import wx
class Viewer(wx.App):
def __init__(self, redirect=False, filename=None):
wx.App.__init__(self, redirect, filename)
self.frame = wx.Frame(None, title='Viewer')
self.panel = wx.Panel(self.frame)
self.imageCtrl = wx.StaticBitmap(self.panel, wx.ID_ANY, wx.BitmapFromImage(wx.EmptyImage(800,600)))
self.mainSizer = wx.BoxSizer(wx.VERTICAL)
self.mainSizer.Add(self.imageCtrl, 0, wx.ALL, 5)
self.onView('0.png')
self.panel.Layout()
self.frame.Show()
def onView(self, filename):
img = wx.Image(filename, wx.BITMAP_TYPE_ANY)
self.imageCtrl.SetBitmap(wx.BitmapFromImage(img))
self.panel.Refresh()
self.mainSizer.Fit(self.frame)
Viewer().MainLoop()
Если тестовое изображение имеет большие размеры, например, 912 x 3616 (здесь используется 0.png), Я хотел бы установить вертикальное смещение, то есть , верхний угол кадра не должен быть (0,0) изображения, но (0,500) т.е. 500 пикселей вертикальное смещение.
Как установить вертикальное смещение изображения с помощью wxPython?
Я попытался обрезать его (это связано с клавишами клавиатуры, такими как DOWN, UP и т. Д.), Но затем на каждой перерисовке 'self.imageCtrl.SetBitmap (wx.BitmapFromImage (img))' есть мерцание. У вас есть идея, как избежать этого мерцания? – Basj
Если вы хотите прокрутить его с помощью клавиш, используйте прокручиваемое окно. В любом случае, определенно не используйте 'wxStaticBitmap' с большими изображениями, особенно если вам нужно их изменить, а скорее нарисуйте сами. Как упоминалось в документации, 'wxStaticBitmap' предназначен для небольших значков в диалоговом окне, а не для отображения общего назначения. –
Спасибо @VZ. У вас есть пример кода, чтобы показать, как я это делаю? – Basj