大丈夫コード:
#!/usr/bin/python
import wx
import sys
class XPinst(wx.App):
def __init__(self, redirect=False, filename=None):
wx.App.__init__(self, redirect, filename)
def OnInit(self):
frame = wx.Frame(None, -1, title='Redirect Test', size=(620,450), style=wx.STAY_ON_TOP|wx.DEFAULT_FRAME_STYLE)
panel = wx.Panel(frame, -1)
log = wx.TextCtrl(panel, -1, size=(500,400), style = wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL)
redir=RedirectText(log)
sys.stdout=redir
print 'test'
frame.Show()
return True
class RedirectText:
def __init__(self,aWxTextCtrl):
self.out=aWxTextCtrl
def write(self,string):
self.out.WriteText(string)
app = XPinst()
app.MainLoop()
追加した:
class MyFrame(wx.Frame)
def __init__(self, parent, id, title, size=(620,450), style=wx.STAY_ON_TOP|wx.DEFAULT_FRAME_STYLE):
wx.Frame.__init__(self, parent, id, title, size=(620,450), style=wx.STAY_ON_TOP|wx.DEFAULT_FRAME_STYLE)
置き換えられました:
frame = wx.Frame(None, -1, title='Redirect Test', size=(620,450), style=wx.STAY_ON_TOP|wx.DEFAULT_FRAME_STYLE)
と:
frame = MyFrame(None, -1, title='Redirect Test', size=(620,450), style=wx.STAY_ON_TOP|wx.DEFAULT_FRAME_STYLE)
今、それは実行されません...
コード内でMyFrameコンストラクターを複数回呼び出して、さまざまな引数を渡せるようにしたい
私は多くのことを試みました...
すべての引数でMyFrameをインスタンス化するmyFrameとすべての引数でインスタンス化するコンストラクターメソッドの署名すべての引数でコンストラクターメソッドの署名
すべての引数で
コンストラクターメソッドの署名すべての
引数で親コンストラクターメソッドを呼び出すデフォルトの引数
以外のすべてのコンストラクターメソッドを呼び出す
さらに、チュートリアルhttp://zetcode.com/wxpython/には、デフォルト引数とオプション引数の数が異なるメソッドが記載されています。(違いは何ですか?)
UDPATE:
「7つのパラメーターがあります。最初のパラメーターにはデフォルト値がありません。他の6つのパラメーターにはデフォルト値があります。これらの4つのパラメーターはオプションです。最初の3つは必須です。」-http ://zetcode.com/wxpython/firststeps/
更新2:
セミコロン補正で、私はちょうど試しました:
class MyFrame(wx.Frame):
def __init__(self, parent, id, title, size, style):
wx.Frame.__init__(self, parent, id, title, size, style)
- 私はどのような議論が行われているのかを教えます(2行目)
- 私は入った議論で呼びます(3行目)
更新3:
完全なエラーメッセージは次のとおりです。
Traceback (most recent call last):
File "test.py", line 29, in <module>
app = XPinst()
File "test.py", line 8, in __init__
wx.App.__init__(self, redirect, filename)
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 7978, in __init__
self._BootstrapApp()
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 7552, in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "test.py", line 10, in OnInit
frame = MyFrame(None, -1, title='Redirect Test', size=(620,450), style=wx.STAY_ON_TOP|wx.DEFAULT_FRAME_STYLE)
File "test.py", line 21, in __init__
wx.Frame.__init__(self, parent, id, title, size, style)
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/_windows.py", line 497, in __init__
_windows_.Frame_swiginit(self,_windows_.new_Frame(*args, **kwargs))
TypeError: Expected a 2-tuple of integers or a wxSize object.
なぜうまくいかなかったのですか?