0

statictext ウィジェットを使用して、呼び出し時にパネルにリストを作成する関数を作成しようとしています。名前、電話番号、電子メールを含む SQL テーブルから情報を取得しています。これが私の例です。うまくいけば、私がやろうとしていることを見ることができます。

info = [('name1','phone1','email1'),('name2','phone2','email2'),
('name3','phone3','email3')]

for name,phone,email in info:
    x = 0
    y = 0
    wx.StaticText(self.Panel,-1,str(name),pos=(10+x,40+y))
    wx.StaticText(self.Panel,-1,str(phone),pos=(100+x,40+y))
    wx.StaticText(self.Panel,-1,str(email),pos=(190+x,40+y))
    x = x + 90
    y = y + 30

これでうまくいくと思います。私は何かを見落として、何かを逃していますか?? 何が起こるかというと、多くの情報が表示されませんが、どこかで単語が重なり合ってクリッピングしていることがわかります。

この効果を得るために:

お名前1 電話1 メール1

名前2 電話2 メール2

お名前3 電話3 メール3

4

2 に答える 2

0

サイザーで試してみてください

import wx

info = [('name1','phone1','email1'),('name2','phone2','email2'),
('name3','phone3','email3')]

class Frame(wx.Frame):
    def __init__(self,*args,**kwargs):
        wx.Frame.__init__(self,*args,**kwargs)
        panel= wx.Panel(self)
        sizer= wx.BoxSizer(wx.VERTICAL)

        grid_sizer= wx.GridSizer(len(info),3,5,5)
        for person in info:
            for detail in person:
                text= wx.StaticText(panel,label=detail)
                grid_sizer.Add(text)
        sizer.Add(grid_sizer,0,wx.EXPAND|wx.ALL,10)

        panel.SetSizer(sizer)

        self.Show()

class App(wx.App):
    def OnInit(self):
       Frame(None)
       return True

if __name__ == "__main__":
    app= App(False)
    app.MainLoop()
于 2012-07-04T08:23:36.867 に答える
0

これを試して

x = 0
y = 0
for name, phone, email in info:        
    wx.StaticText(self.Panel, -1, str(name),  pos=(10+x,40+y))
    wx.StaticText(self.Panel, -1, str(phone), pos=(100+x,40+y))
    wx.StaticText(self.Panel, -1, str(email), pos=(190+x,40+y))

    y = y + 30
于 2012-07-04T06:53:08.687 に答える