2016-09-10 18 views
1

私はwxPythonの新機能です。フレームとウィンドウ(ウィジェット)の両方に一定のサイズを設定しているときにいくつか問題が見つかりました。私はこの問題を250×250ピクセルのフレームを作成しようとする最も単純なケースに分けました。私は307の高さによって、295幅の実際のサイズのウィンドウを取得コードを実行するwx.Frameサイズを設定する(wxPython - wxWidgets)

私は

のWindows 10でのPython 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個のピクセル(-seeペイントの下のバー - )を持っています代わりに、予想される400

Window size measured in pixels

+0

あなたが測定するにはどうすればよい:あなたは簡単にこのように、アプリケーション内の各ウィジェットのための実際のサイズ(およびその他の情報)を参照してくださいできるようになる

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

app.MainLoop()へお電話前部フレームの寸法? –

+0

Alt + PrintScreenキーを使用してWindows 10でスクリーンショットを撮ります。次に、ペイントで幅を測定します。 –

+0

あなたの画面サイズを取ってフレームの幅にしてから、 'print self.frame.GetSize()'を使って何が得られるかを見てください。 –

答えて

関連する問題