私はpython2.7 + wxpythonを使用していくつかのチャートデータを表示しています。wx.frameを使用したPythonクラスの継承
私は2つのクラスを持ち、1つ(wxクラス)はwx.frameで管理し、もう1つ(テキストデコードクラス)はファイルコンテキストからのパーサー用です。 wx.frame(例えば:self.SetMenuBar、self.SetTitle)をwxクラスで制御するためにself。*を使うことができます。この "self"を別のクラスに渡して同じwx.frameを制御できますか?私が直接、別のクラスでself.SetTitleを使用している場合などは簡単なコードをたどる
、
class CanvasFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title, size=(550, 350))
self.SetBackgroundColour(wxc.NamedColour("WHITE"))
....
normal_test_mode_decode(filename, directory)
....
class normal_test_mode_decode(CanvasFrame):
def __init(self, csv_fname, csv_dir):
....
self.SetTitle(os.path.join(csv_dir, csv_fname)) #Error here
class MyApp(wx.App):
def OnInit(self):
frame = CanvasFrame(None, "wxPython mathtext demo app")
....
if __name__ == '__main__':
app = MyApp()
app.MainLoop()
これはエラーメッセージです。
Traceback (most recent call last):
File "D:\normal_test_mode_parser\normal_test_mode_parser.py", line 45, in OnOpen
self.decode = normal_test_mode_decode(filename, directory)
File "D:\normal_test_mode_parser\normal_test_mode_parser.py", line 64, in __init__
self.SetTitle(os.path.join(csv_dir, csv_fname))
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_windows.py", line 455, in SetTitle
return _windows_.TopLevelWindow_SetTitle(*args, **kwargs)
TypeError: in method 'TopLevelWindow_SetTitle', expected argument 1 of type 'wxTopLevelWindow *'
私の計画は、GUIの機能と別のクラス(normal_test_mode_decode)データ分析機能を処理を管理するためのwxPythonのためのそのクラス(CanvasFrame)であるので、私はこの問題を修正します。
ありがとうございました!
あなたが必要とする場合は、この私のソースが問題に見る: https://paste.ofcode.org/SCiFLfYcB52rtrmEyn6QuC
このコードを実行すると、ファイルを選択してください - > [すべてのファイルを開いて、その後、あなたがエラーを参照してください。
お願いします。1.コードを(リンクではなく)ご質問の中に掲載してください。 2.あなたの質問の中でテキストとしてエラーメッセージなどを**投稿してください(リンクではありません)。 –
ビル、ありがとう。私は自分の質問を修正したが、埋め込み画像には十分な評判がない。 –
私は理解しています。あなたがする必要があるのは、paste.ofcode.orgや端末画面のようなソースからテキストをコピーしてSOの質問に貼り付ける方法を見つけることです。 Windowsを使用しているので、pythonアイコンのc:\ python27 \ python.exeという画面の左上隅を右クリックすると、切り取りと貼り付けを可能にするオプションのメニューが表示されます。ソースコードをコピーするには、コードを強調表示し、コピー&ペーストを使用します。 –