设置范围中多个文本的名称

2024-04-25 06:49:21 发布

您现在位置:Python中文网/ 问答频道 /正文

请我想把几个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)

谢谢


Tags: 代码inself名称面板for动态range
1条回答
网友
1楼 · 发布于 2024-04-25 06:49:21

你可以这样做:

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()

enter image description here

但是这是一个很大的问题,但是你让自己的生活变得很困难,因为你不能通过字符串名self.indesc11来访问项目,例如,你必须通过list中的位置来引用它(据我所知)。
如果你在编写这类代码时是明确的,那么对未来来说是明智和清晰的。毕竟这只是复制和粘贴。你知道吗

相关问题 更多 >