请我想在面板中放置几个textctrl并尝试动态设置名称和位置,使用以下代码,控件出现但我无法确定名称。
p=0
for i in range(20):
p += 25
indesc ="ingdesc"
indesc = indesc + str(i)
print indesc
self.HERE I WANT TO PUT indesc value = wx.TextCtrl(self.panel,pos=(280,190+p),size=(350,23),style=wx.TE_READONLY)
感谢
答案 0 :(得分:0)
你可以这样做:
import wx
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Indesc')
self.panel = wx.Panel(self)
textctrls=[]
for i in range(20):
textctrls.append("self.indesc"+str(i))
p=0
for i in range(20):
p+=25
textctrls[i] = wx.TextCtrl(self.panel,pos=(10,10+p),size=(350,23),style=wx.TE_READONLY)
textctrls[0].SetValue("Item 0")
textctrls[11].SetValue("Item 11")
self.Show()
if __name__ == '__main__':
app = wx.App()
frame = MainFrame()
app.MainLoop()
但是它很大但是你让自己的生活变得困难,因为你无法通过字符串名self.indesc11
访问这些项目,例如你必须通过位置来引用它。 list
(据我所知)
如果您在编写此类事物时明确表示未来是明智和清晰的。它毕竟只是复制和粘贴。