2010-12-05 9 views
0

Python GUIの2つのスライダの値を外部ファイル(テキストまたはCSVファイル)に送信する必要があります。 乾杯 AlasdairPython GUIから外部ファイルに値を送信

+0

は? –

+1

ところで、Python GUIとは何ですか? – khachik

+1

短い答え:値が利用可能な場合は、ファイルを開き、値を書き込んだ後に閉じます。それは何らかの理由で機能しませんか? – martineau

答えて

2

ここwx.Pythonを使用して簡単な例です:あなたがこれまでに行ったこと

import wx 

class MyPanel(wx.Panel): 
    def __init__(self, parent, id = -1): 
     wx.Panel.__init__(self, parent, id) 

     self.slider1 = wx.Slider(self, -1, 50, 0, 100, size=(300,25)) 
     self.slider2 = wx.Slider(self, -1, 50, 0, 100, size=(300,25)) 

     self.button = wx.Button(self, -1, "Write Values") 
     self.Bind(wx.EVT_BUTTON, self.onWrite) 

     # Uncomment the next two lines if you want to write the 
     # data out every time you move the slider 
     #self.Bind(wx.EVT_SLIDER, self.onWrite) 
     #self.onWrite() 

     self.sizer = wx.BoxSizer(wx.VERTICAL) 
     self.sizer.AddStretchSpacer(1) 
     self.sizer.Add(self.slider1, 0, wx.ALIGN_CENTER_HORIZONTAL) 
     self.sizer.AddSpacer(50) 
     self.sizer.Add(self.slider2, 0, wx.ALIGN_CENTER_HORIZONTAL) 
     self.sizer.AddSpacer(75) 
     self.sizer.Add(self.button, 0, wx.ALIGN_CENTER_HORIZONTAL) 
     self.sizer.AddStretchSpacer(1) 
     self.SetSizerAndFit(self.sizer) 

    def onWrite(self, event = None): 
     v1 = self.slider1.GetValue() 
     v2 = self.slider2.GetValue() 
     f = open("file.csv", "w") 
     line = "%d, %d\n" %(v1, v2) 
     f.write(line) 
     f.close() 
     print "Just wrote", line 


if __name__ == "__main__": 
    a = wx.PySimpleApp() 
    f = wx.Frame(None,-1, "Slider Demo") 
    p = MyPanel(f) 
    f.Show() 
    a.MainLoop() 
+0

@K。 Brafford各スライドイベントのファイルに書き込みますか? – khachik

+0

良い点。私はその質問に基づいて確信が持てませんでしたので、スライダの変更を通知する方法を示しました。この例をボタンプレスで意図的に書き込むように修正しました。 –

関連する問題