使用字典键填充wx.StaticText控件:值对

时间:2012-06-26 18:54:03

标签: python dictionary wxpython

我有一个wxPython GUI应用程序,其中包含13对StaticText控件,我希望能够设置有问题的标签。

在回归分析方面,每对StaticText控件代表一个独立变量及其系数。这些键:值对当前存储在python字典中,允许我对我的大部分工作使用字典理解。

现在,我正在努力在我的GUI中显示我的python字典的内容。有什么想法吗?

我很高兴在1个StaticText控件标签中连接key:value对,因为我觉得它不会那么混乱。

1 个答案:

答案 0 :(得分: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