Domanda

Sto realizzando un programma con un'immagine per uno sfondo e quello che sto cercando di fare è ottenere la cornice per adattarsi all'immagine con precisione.

È facile iniziare la cornice con le dimensioni dell'immagine:

wx.Frame.__init__(self, parent, title=title, size=(500, 300))

Ma poiché questo spiega anche i bordi e l'intestazione della finestra, questo non è del tutto accurato. A corto di regolare manualmente la dimensione del pixel (che non sarebbe comunque coerente Cross-OS), cosa posso fare?

EDIT: ho trovato una risposta, ma sembra che non posso auto-risposta per alcune ore. Intanto...

Backdrop = wx.Bitmap("image.png")
self.SetClientSize((Backdrop.GetWidth(), Backdrop.GetHeight()))
È stato utile?

Soluzione

Potresti realizzare la stessa cosa con un Sizer, che renderebbe anche le cose più facili se hai bisogno di includere altri elementi accanto all'immagine e controllare il modo in cui si ridimensionano con il frame.

Ecco un esempio di base di una cornice che si ridimensiona per adattarsi a un'immagine.

import wx

class Frame(wx.Frame):
  def __init__(self, parent, id, title, img_path):
    wx.Frame.__init__(self, parent, id, title, 
                      style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)

    image = wx.StaticBitmap(self, wx.ID_ANY)
    image.SetBitmap(wx.Bitmap(img_path))

    sizer = wx.BoxSizer()
    sizer.Add(image)
    self.SetSizerAndFit(sizer)

    self.Show(True)

app = wx.App()
frame = Frame(None, wx.ID_ANY, 'Image', '/path/to/file.png')
app.MainLoop()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top