2016-04-11 4 views
0

私はwxPythonの使い方を学んでいます。私はうまく動作するいくつかの基本的な例を行ったが、これは失敗する。 wxFormBuilderの助けを借りて作成された、数値を四角で囲む単純なフレームです。私は走っています: Python 3.5.1 | Anaconda 2.5.0(64-bit)| (デフォルト、Feb 16 2016、09:49:46)Windows 8.1では[MSC v.1900 64ビット(AMD64)]。 wxPythonののバージョンはフェニックス(+ f780b21 3.0.3.dev1964)私のオブジェクトに属性 'SetSizeHintsSz'がないと言うpython3がwxモジュールを実行できないのはなぜですか?

wxFormBuilderコード "test_wx.pyは" です。


# -*- coding: utf-8 -*- 

########################################################################### 
## Python code generated with wxFormBuilder (version Jun 17 2015) 
## http://www.wxformbuilder.org/ 
## 
## PLEASE DO "NOT" EDIT THIS FILE! 
########################################################################### 

import wx 
import wx.xrc 

import gettext 
_ = gettext.gettext 

########################################################################### 
## Class MyFrame1 
########################################################################### 

class MyFrame1 (wx.Frame): 

    def __init__(self, parent): 
     wx.Frame.__init__ (self, parent, id = wx.ID_ANY, 
          title = wx.EmptyString, 
          pos = wx.DefaultPosition, 
          size = wx.Size(342,246), 
          style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL) 

     self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) 

     bSizer1 = wx.BoxSizer(wx.VERTICAL) 

     self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, 
              _(u"Give me a number"), 
              wx.DefaultPosition, 
              wx.DefaultSize, wx.ALIGN_CENTRE) 
     self.m_staticText1.Wrap(-1) 
     bSizer1.Add(self.m_staticText1, 0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL, 5) 

     self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer1.Add(self.m_textCtrl1, 0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL, 5) 

     self.m_button1 = wx.Button(self, wx.ID_ANY, 
            _(u"Find the square!"), 
            wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer1.Add(self.m_button1, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5) 

     self.m_textCtrl2 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, 
             wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE) 
     bSizer1.Add(self.m_textCtrl2, 0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL, 5) 


     self.SetSizer(bSizer1) 
     self.Layout() 

     self.Centre(wx.BOTH) 

     # Connect Events 
     self.m_button1.Bind(wx.EVT_BUTTON, self.square) 

    def __del__(self): 
     pass 


    # Virtual event handlers, override them in your derived class 
    def square(self, event): 
     event.Skip() 

その後、私は私のデモを呼び出して、このメインスクリプトを持っています:


# -*- coding: utf-8 -*- 
""" 
Created on Sun Apr 10 12:42:45 2016 

@author: Miguel 
""" 
# -*- coding: utf-8 -*- 

import wx 

# Import the GUI as prepared by wxFormBuilder 
import test_wx as demo 

class CalcFrame(demo.MyFrame1): 
    def __init__(self,parent): 
     demo.MyFrame1.__init__(self,parent) 

    def square(self,event): 
     num = int(self.m_textCtrl1.GetValue()) 
     self.m_textCtrl2.SetValue (str(num * num)) 

app = wx.App(False) 
frame = CalcFrame(None) 
frame.Show(True) 

# Start the GUI 
app.MainLoop() 
wx.__version__ 

コードが実行されていません。私が得る唯一の手がかりは:

AttributeError: 'CalcFrame' object has no attribute 'SetSizeHintsSz'

しかし、それは私には継承されたクラスで利用できるようです!いずれにしても、私はCalcFrameの定義に次の文を含めるようにしました:

 self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) 

しかし、どちらもうまくいきませんでした。このコードで何が問題なのでしょうか?

答えて

1

SetSizeHintsSzSetSizeHints wxPythonのフェニックスのです。

ClassicからPhoenixにコードを移植する際に変更が必要なクラス、関数、およびメソッドのリスト(比較的包括的なリスト)については、Classic vs. Phoenixのドキュメントを参照してください。

関連する問題