2012-06-26 3 views
0

문제가있는 레이블을 설정할 수있는 13 개의 StaticText 컨트롤이 포함 된 wxPython GUI 응용 프로그램이 있습니다.wx.StaticText 컨트롤에 사전 키 : 값 쌍을 채 웁니다.

회귀 분석의 측면에서 StaticText 컨트롤의 각 쌍은 독립 변수 및 해당 계수를 나타냅니다. 이 키 : 값 쌍은 현재 파이썬 사전에 저장되어있어 대부분 내 작업에 사전 이해도를 사용할 수 있습니다.

지금 당장은 내 파이썬 사전 내용을 내 GUI 안에 표시하려고 고심하고 있습니다. 이견있는 사람?

키를 연결해서 기쁘게 생각합니다 : 값 쌍이 1 StaticText 컨트롤 라벨 안에 있습니다. 덜 혼란 스럽습니다.

답변

2

이렇게하려면 여러 가지 방법이있을 것입니다. 아마도 ListCtrl 또는 ObjectListView를 사용하는 것이 좋습니다. 그러나 내가 나서서의 StaticText 컨트롤을 사용하는 예제를 만들어 :

import wx 

######################################################################## 
class MyPanel(wx.Panel): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self, parent): 
     """Constructor""" 
     wx.Panel.__init__(self, parent) 

     self.mainSizer = wx.BoxSizer(wx.VERTICAL) 
     self.createControls() 
     self.SetSizer(self.mainSizer) 

    #---------------------------------------------------------------------- 
    def createControls(self): 
     """""" 
     myDict = {"var1":"co-eff1", "var2":"co-eff2", 
        "var3":"co-eff3", "var4":"co-eff4", 
        "var5":"co-eff5", "var6":"co-eff6", 
        "var7":"co-eff7", "var8":"co-eff8", 
        "var9":"co-eff9", "var10":"co-eff10", 
        "var11":"co-eff11", "var12":"co-eff12", 
        "var13":"co-eff13"} 
     for key in myDict: 
      lblOne = wx.StaticText(self, label=key) 
      lblTwo = wx.StaticText(self, label=myDict[key]) 

      sizer = wx.BoxSizer(wx.HORIZONTAL) 
      sizer.Add(lblOne, 0, wx.ALL, 5) 
      sizer.Add(lblTwo, 0, wx.ALL, 5) 
      self.mainSizer.Add(sizer) 

######################################################################## 
class MyFrame(wx.Frame): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self): 
     """Constructor""" 
     wx.Frame.__init__(self, None, title="Frame Example", 
          size=(400,400)) 
     panel = MyPanel(self) 
     self.Show() 

if __name__ == "__main__": 
    app = wx.App(False) 
    frame = MyFrame() 
    app.MainLoop() 

당신이하는 ListCtrl의 모습을 보러와 wxPython을 데모 패키지를 다운로드하고 ListCtrl 데모를 조회하려면

. ObjectListView 들어, 내 tutorial 읽을 수 있습니다.

+1

내가 정확히 무엇을하고 있는지 정확히 ... –

+0

(주석에서 작동하지 않으며 편집이 제한적이기 때문에 다시 시도하십시오.) 키와 ​​값을 모두 얻으려면'for key, value in myDict '를 사용할 수 있습니다. items() :'(또는 Py2에서는'.iteritems()'), 그리고 루프의'label = value'. –

+0

헤이 마이크, 당신의 블로그는 훌륭한 자원이었습니다! 힘내 친구 야. 내 질문 중 하나를 보니 기쁘다. –

관련 문제