2016-09-10 2 views
1

wxPython을 처음 사용하고 프레임과 창 (위젯) 모두에 대해 지정된 크기를 설정하는 동안 몇 가지 문제가 발생했습니다. 250x250 픽셀의 프레임을 만들려고하는 가장 간단한 경우로 문제를 격리했습니다. 나는 307 높이 295 폭의 실제 크기의 화면을 얻을 코드를 실행wx.Frame 크기 설정 (wxPython - wxWidgets)

내가

윈도우 10에 파이썬 2.7을 사용하고 있습니다 (고려 사항으로 Windows's 상단 창 표시 줄을 복용) 내가 뭘 놓치고 있니?

#!/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() 

더 쇼 발행하면 addtional 시험 :

#!/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() 

그리고 그 결과가 표시 창 (프레임)을 볼 수 있듯이

는 482 개 픽셀 (이따 페인트의 하단 바 -)가 대신 예상 (400)

Window size measured in pixels

+0

당신은 측정하려면 어떻게 프레임의 치수? –

+0

Alt + PrintScreen 키를 사용하여 Windows 10에서 스크린 샷을 찍습니다. 그런 다음 페인트에서 너비를 측정합니다. –

+0

화면 크기를 가져 와서 프레임 너비로 만든 다음'print self.frame.GetSize()'를 사용하여 얻은 것을보십시오. –

답변

1

이 될 추가 app.MainLoop()에 전화 전면 : 쉽게이 같은 응용 프로그램의 각 위젯의 실제 크기 (및 기타 정보)를 참조 할 것

import wx.lib.inspection 
wx.lib.inspection.InspectionTool().Show() 

:

Widget Inspection Tool

관련 문제