我正在尝试使用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
现在我认为这会奏效。我错过了什么,忽略了什么?会发生什么事情,很多信息都没有显示出来,但是你可以看到它在某个地方被剪切,文字互相重叠。
尝试获得这种效果:
name1 phone1 email1
name2 phone2 email2
name3 phone3 email3
答案 0 :(得分: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
答案 1 :(得分:0)
尝试使用sizer
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()