Ich bin neu bei wxPython und ich finde einige Probleme beim Einstellen einer bestimmten Größe für Rahmen und Fenster (Widgets). Ich habe das Problem auf den einfachsten Fall isoliert, wo ich versuche, einen Frame von 250x250 Pixeln zu erstellen.Set wx.Frame Größe (wxPython - wxWidgets)
Ausführen des Codes ich ein Fenster einer tatsächlichen Größe von 295 Breite von 307 Höhe erhalten (unter Berücksichtigung der Windows's oberen Fensterleiste)
Ich verwende Python 2.7 in Windows 10.
Was vermisse ich?
#!/bin/env python
import wx
# App Class
class MyAppTest7(wx.App):
def OnInit(self):
frame = AppFrame(title = u'Hello World', pos=(50, 60), size=(250, 250))
frame.Show()
self.SetTopWindow(frame)
return True
# AppFrame
class AppFrame(wx.Frame):
def __init__(self, title, pos, size):
wx.Frame.__init__(self, parent=None, id=-1, title=title, pos=pos, size=size)
if __name__ == '__main__':
app = MyAppTest7(False)
app.MainLoop()
Ein addtional Test zur weiteren Show Ausgabe:
#!/bin/env python
import wx
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None, title="The Main Frame")
self.SetTopWindow(self.frame)
self.frame.Show(True)
return True
class MyFrame(wx.Frame):
def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition, size=(400,100), style=wx.DEFAULT_FRAME_STYLE, name="MyFrame"):
super(MyFrame, self).__init__(parent, id, title, pos, size, style, name)
self.panel = wx.Panel(self)
if __name__ == "__main__":
app = MyApp(False)
app.MainLoop()
Und das Ergebnis:
Wie Sie angezeigten Fenster sehen kann (Frame) hat 482 Pixel (-siehe Paint Boden bar-) statt der erwarteten 400.
Window size measured in pixels
Wie messen Sie die Abmessungen von Frame? –
Ich mache einen Screenshot in Windows 10 mit Alt + PrintScreen-Taste. Dann messe ich nur die Breite in Paint. –
Nehmen Sie Ihre Bildschirmgröße und machen Sie die Breite des Rahmens, dann verwenden Sie 'print self.frame.GetSize()' und sehen Sie, was Sie bekommen. –