2012-02-06 8 views
1

wxpythonでパネルを作成し、データベース(MySQLdb)を作成した後、データベースからいくつかのデータを選択します。選択は私がlistbox.Theコード内のデータベースからいくつかの他のデータを挿入する選択肢またはBの選択肢がある場合は、その後、wx.Combobox(ドロップダウン)でそれらを挿入すると、以下の通りです:mysql dbからデータを取り込んで、mysqldbを使ってwx.ComboBoxに挿入する方法

import MySQLdb 
import sys 
import wx 

APP_SIZE_X = 661 
APP_SIZE_Y = 319 

class MyFrame(wx.Frame): 
    def __init__(self, parent, id, title): 
     wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, 
     size=(APP_SIZE_X, APP_SIZE_Y)) 

     panel = wx.Panel(self, -1,style=wx.SUNKEN_BORDER) 

     sel="Make your choice" 
     wx.StaticText(panel, -1,sel,(15,10)) 

      db=MySQLdb.connect(host="localhost",use_unicode="True", 
        charset="utf-8", 
     user="youruser",passwd="somepwd",db="choicedb") 

     cursor=db.cursor() 
     sql="""SELECT name from choicetb""" 

     cursor.execute(sql) 

     rows = cursor.fetchall() 

     for row in rows: 

        print row[1] 



      sampleList = ["A choice", "B choice", "C choice"]#The data from db 
      wx.ComboBox(panel, -1, "A choice", (15, 30), 
      wx.DefaultSize,sampleList, wx.CB_DROPDOWN) 

     math="Selected items" 
     wx.StaticText(panel, -1,math,(10,100)) 

     listBox = wx.ListBox(panel, -1, (10, 130), (230, 120), 
     ' ', wx.LB_SINGLE) 


     exitbutton =wx.Button(panel,-1, label="Quit", pos=(300, 230)) 
     exitbutton.Bind(wx.EVT_BUTTON, self.OnQuit) 
     self.Centre() 

    def OnQuit(self, e): 

     self.Close() 

class MyApp(wx.App): 
    def OnInit(self): 
     frame = MyFrame(None, -1, 'form1.py') 
     frame.Show(True) 
     self.SetTopWindow(frame) 
     return True 

app = MyApp(0) 
app.MainLoop() 

I挿入方法私はコンボボックスで行から取るものは何かを試してみますが、私にはもちろん最後の選択肢が与えられます。私はループの中に何かがあるのは分かっていますが、何ですか?あなたの答えとあなたの助けをありがとう。

答えて

1

新しいデータをPythonリストに入れ、ListBox/ComboBoxのAppendItems(your_list)メソッドを使用します。それはおそらく最も簡単な方法です。あなたは既にコンボボックスのためのリストを持っている場合は、このような何かを行うことができ:そのような

self.myComboList = ["some", "list"] 
for row in rows: 
    self.myComboList.Append(row[1]) 
self.ComboList.sort() 
self.myComboBoxWidget.AppendItems(self.ComboList) 

何かが動作するはずです。

+0

ありがとうございます! – TLSK

関連する問題