动态wx.单选按钮

2024-04-26 06:41:50 发布

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

我在下面的程序中遇到了一些问题。首先通过程序,一切似乎都正常。在随后的过程中,标签会覆盖上一个标签而不进行擦除,加上隐藏按钮的初始循环似乎无法正常工作。你知道吗

def drawbutton(自身,事件):

    rbuttons = [
     wx.RadioButton(self,-1,'xxxxxxxxxx', (190,60),style = wx.RB_GROUP),       
     wx.RadioButton(self, -1,'xxxxxxxxxx', (190,80)),
     wx.RadioButton(self, -1,'xxxxxxxxxx', (190,100)),
     wx.RadioButton(self, -1,'xxxxxxxxxx', (190,120)),
     wx.RadioButton(self, -1,'xxxxxxxxxx', (190,140)),
     wx.RadioButton(self, -1,'xxxxxxxxxx', (190,160)),
     wx.RadioButton(self, -1,'xxxxxxxxxx', (190,180)), ]

    for i in range(7):         
        rbuttons[i].Hide()   


    i = 0

    if self.combobox.GetValue() == "555-1212":
       voice1 = Voice()
       voice1.login("user1","abcdef")
       nphones = len(voice1.phones)



       for i in range(nphones):
           rbuttons[i].SetLabel(voice1.phones[i].name)
           rbuttons[i].Show()

       i = i + 1

       rbuttons[i].SetLabel('Voicemail')
       rbuttons[i].Show()


    else:
       voice2 = Voice()
       voice2.login("user2","abcdef")
       nphones = len(voice2.phones) 
       i = 0  

       for i in range(nphones):
           rbuttons[i].SetLabel(voice2.phones[i].name)
           rbuttons[i].Show()

       i = i + 1

       rbuttons[i].SetLabel('Voicemail')
       rbuttons[i].Show()

Tags: inself程序forshowrangewxxxxxxxxxxx
1条回答
网友
1楼 · 发布于 2024-04-26 06:41:50

试着打电话自我更新()强制重画。你知道吗

http://www.wxpython.org/docs/api/wx.Window-class.html#Refresh

顺便说一句,你用“我”的方式在范围上有点混乱。。。你知道吗

i = 0
....
for i in range(nphones):
           rbuttons[i].SetLabel(voice1.phones[i].name)
           rbuttons[i].Show()

i = i + 1

rbuttons[i].SetLabel('Voicemail')
rbuttons[i].Show()

尝试:

for i in range(nphones):
           rbuttons[i].SetLabel(voice1.phones[i].name)
           rbuttons[i].Show()

vm_idx = nphones    
rbuttons[vm_idx].SetLabel('Voicemail')
rbuttons[vm_idx].Show()

相关问题 更多 >