2016-05-17 2 views
0

В одном из моих экранов есть ComboBox, в котором может быть выбран «тип спорта» клиента (в основном профессиональных спортивных людей). Это было сделано таким образом, чтобы избежать чрезмерно длинного списка всех возможных видов спорта. Одним из примеров является «Спортивный спорт», который относится к скейтбордингу, skiboarding, серфингу и т. Д. Ряд пользователей программного обеспечения задал вопрос, может ли отображаться HelpText, если они навешиваются над опцией, например. если бы они зависали над «Спортивными состязаниями», упомянутые виды спорта были бы показаны. После интенсивного пару часов Googling я не вижу, как это сделать. Возможно ли, и если да, то как?Текст помощи для записей ComboBox

ответ

1

Вот "" решение, выберите, а затем парить:

import wx 

class Myframe(wx.Frame): 
    def __init__(self): 
     wx.Frame.__init__(self, None) 
     self.my_choices = ["Board Sports","Ball Sports","Fight Sports"] 
     self.my_subchoices = [["Skate boarding","Surfing","Ski boarding"],["Football","Cricket","Rugby","Guess my nationality"],["Boxing","Wrestling","Karate"]] 
     pan = wx.Panel(self) 
     self.cbx = wx.ComboBox(pan, -1, pos=(10,30), choices=self.my_choices,style=wx.CB_DROPDOWN) 
     self.cbx.Bind(wx.EVT_COMBOBOX, self.on_selection) 
     self.cbx.SetValue("Choose a sport") 

    def on_selection(self, evt): 
     Choice = self.cbx.GetSelection() 
     msg = "" 
     for x in self.my_subchoices[Choice]: 
      msg += x+"\n" 
     self.cbx.SetToolTipString(msg) 

if __name__ == "__main__": 
    App = wx.App() 
    Myframe().Show() 
    App.MainLoop()