2011-06-23 9 views
0

こんにちは私は素人プログラマーです。私はシンプルなテキストの紆余曲折のゲームを作り、それをtexttwister_compy.pyと名づけました。私はシンプルなGUIを構築することもできました。しかし、私は自分のpythonプログラムをwxpythonのGUIに統合する方法を学ぶ必要があります。Pythonをwxpythonに結合する方法

import os 
import wx 

class MainWindow(wx.Frame): 
    def __init__(self, parent, title): 
     wx.Frame.__init__(self, parent, title=title, size=(200,100)) 
     self.Control=wx.TextCtrl(self, style=wx.TE_MULTILINE) 
     self.CreateStatusBar() 

     filemenu=wx.Menu() 
     editmenu=wx.Menu() 
     viewmenu=wx.Menu() 
     toolsmenu=wx.Menu() 

     menuAbout=filemenu.Append(wx.ID_ABOUT, "&About") 
     menuExit=filemenu.Append(wx.ID_EXIT, "&Exit") 
     menuOpen=filemenu.Append(wx.ID_OPEN, "&Open") 
     menuCopy=editmenu.Append(wx.ID_COPY, "&COPY") 
     menuClear=viewmenu.Append(wx.ID_CLEAR, "&Clear") 
     clearButton=wx.Button(self, wx.ID_CLEAR, "Clear") 

     menuBar=wx.MenuBar() 
     menuBar.Append(filemenu, "&file") 
     menuBar.Append(editmenu, "&Edit") 
     menuBar.Append(viewmenu, "&View") 
     menuBar.Append(toolsmenu, "&Tools") 
     self.SetMenuBar(menuBar) 

     self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout) 
     self.Bind(wx.EVT_MENU, self.OnExit, menuExit) 
     self.Bind(wx.EVT_MENU, self.OnOpen, menuOpen) 
     self.Bind(wx.EVT_MENU, self.OnCopy, menuCopy) 
     self.Show(True) 

    def OnAbout(self, event): 
     devi=wx.MessageDialog(self, "small text editpr", wx.OK) 
     devi.ShowModal() 
     devi.Destroy() 

    def OnExit(self, event): 
     self.Close(True) 

    def OnOpen(self, event): 
     self.dirname='' 
     dlg=wx.FileDialog(self, "choose file", self.dirname, "*.*", wx.OPEN) 
     if dlg.ShowModal() == wx.ID_OK: 
      self.filename = dlg.GetFilename() 
      self.dirname = dlg.GetDirectory() 
      f = open(os.path.join(self.dirname, self.filename), 'r') 
      self.control.SetValue(f.read()) 
      f.close() 
     dlg.Destroy() 

    def OnCopy(self, event): 
     mk=wx.EditDialog(self, "Copy files", wx.OK) 
     mk=ShowModal() 

    def OnClear(self, event): 
     clearButton.ShowModal() 

app=wx.App(False) 
frame=MainWindow(None, "Hello commander") 
app.MainLoop() 

私はまた、あなたがそれらを開くためにどのように正確に、wxPythonの問題のデモについての質問がある: はここに私のwxPythonのコードです。

私の最終的な質問はどうしていますか?だからここ

はtexttwisterのためのプログラムである:

import random 
list=[['D','R','P','O','O','L','E','Q','U','A'],['L','A','C','I','T','Y','L','A','N','A'], 
     ['I','S','T','M','E','C','H','Y','R',],['O','C','R','I','G','N','A'], 
     ['M','E','I','D','C','I','E','N'],['N','O','S','S','I','M','I','E'], 
     ['Y','M','E','C','H','L','A'],['D','A','G','R','U'],['I','E','V','D']] 
list2=['quadropole', 'analytical', 'alchemy','chemistry', 'organic', 
     'medicine', 'emission','durga','devi'] 
random.choice(list) 

def operation(): 
    print random.choice(list) 

x=operation() 

while True: 
    from itertools import repeat 

    guess=raw_input('please untwist the word:') 

    if guess in list2: 
     print 'CONGRATULATIONS! you got the word' 
     print 'keep going strong' 
     repeat(operation()) 
     continue 
    if guess not in list2: 
     print 'NO! this is not correct wrong answer please try again' 

    if guess==raw_input(): 
     print 'Program is CLOSING' 
     print 'Please have a good day' 
     print 'hope you enjoyed the game' 
     break 

私は上記のコードでこれを統合する方法を教えてください。ですから、私のメインループは、クラスまたはクラスLoopと言うような関数のようになります。それから、メインのwxpythonでは、クラスまたは関数として呼びますか?

答えて

2

アクションイベントをボタンまたはマウスのクリックにバインドするだけです。だからあなたのゲームは、ボックス内の数字を変更し、毎回それを1つ増やすことで、ゲーム内のあなたの関数への単純な呼び出しを入力として行い、GUIを更新することを含む。そのクリックでは、ボックスを更新するだけでなく、結果や報酬を得ることができるゲーム内の何かを行います。そして、あなたのGUIに反映されます(つまり、あなたのスコアを更新します)。

あなたのゲームはおそらくOOP形式にする必要がありますが、手続き的にはうまくいかない可能性があります。

テストケースをテストするには、まずサンプルを見つける必要があります。多くの場合、それらはあなたのpython-directory/wxpython/examplesにあります。あなたはそれらを見つけ出し、他のPythonスクリプトと同じように起動します。多くの場合、readmeがあり、wxpythonのドキュメントでは何をすべきかを教えてくれます。

関連する問題