меню или popumenu clickright в выборе выпадающего списка? - PullRequest
1 голос
/ 06 марта 2019

У меня есть первый список (видимый, Infrarouge, моделирование) в моем комбинированном списке, и мне нужно создать список 2 (VIS04, VIS05, VIS06, ir039, IR087, IR103, SIM1, SIM2, SIM2), как, когда я нажимаю вправо в видимомУ меня будет такое же меню: VIS04, VIS05, VIS06 и то же самое для инфракрасного излучения и симуляции, как описание изображения:

введите описание изображения здесь введите описание изображения здесь

как я могу иметь меню, такое как описание изображения, когда я щелкаю правой кнопкой мыши в видимой области или другой выбор в выпадающем списке, у меня есть меню с выбором списка?или все другие возможные предложения

я использую wxpython в python3

это часть моего кода:

class MainPanel(wx.Panel):

    def __init__(self, parent):
        super().__init__(parent)
        wx.Frame.__init__(self, parent,size = (250,250))
        self.splitter = wx.SplitterWindow(self, -1, size = (500,500))

#panelone
        pan1 =wx.Window(self.splitter, style=wx.DEFAULT_FRAME_STYLE) 
        pan1.SetBackgroundColour("white")

#paneltwo
        pan2 = wx.Window(self.splitter, style=wx.DEFAULT_FRAME_STYLE)
        pan2.SetBackgroundColour("white")
#combobox

     List1 = ['Infra', 'Vis','simulat']

        combobox = wx.ComboBox(pan2, id=wx.ID_ANY, choices = List1, style=wx.CB_DROPDOWN,pos=(80,5))

помощь или пример, пожалуйста

iя новичок в wxpython

спасибо

1 Ответ

0 голосов
/ 06 марта 2019

Ваш вопрос и код относятся к wx.ComboBox, и все же ваши примеры изображений являются всплывающими меню.Я предполагаю, что вы пытаетесь достичь чего-то вроде этого:

import wx
class myPanel(wx.Frame):
    def __init__(self, *args, **kwds):
        wx.Frame.__init__(self, *args, **kwds)
        self.panel = wx.Panel(self)
        text = wx.StaticText(self.panel, -1, "Right click on this panel for a popup menu")
        self.Bind(wx.EVT_CONTEXT_MENU, self.ShowPopup)
        self.Show()

    def ShowPopup(self, event):
        popmenu = wx.Menu()
        visible = wx.Menu()
        visible.Append( -1, "VIS04")
        visible.Append( -1, "VIS05")
        visible.Append( -1, "VIS06")
        visible.Append( -1, "VIS07")
        popmenu.Append( -1, "Visible", visible)

        infrared = wx.Menu()
        infrared.Append( -1, "IR04")
        infrared.Append( -1, "IR05")
        infrared.Append( -1, "IR06")
        infrared.Append( -1, "IR07")
        popmenu.Append( -1, "Infrared", infrared)

        simulation = wx.Menu()
        simulation.Append( -1, "SIM04")
        simulation.Append( -1, "SIM05")
        simulation.Append( -1, "SIM06")
        simulation.Append( -1, "SIM07")
        popmenu.Append( -1, "Simulation", simulation)

        self.Bind(wx.EVT_MENU, self.OnChoice)
        self.PopupMenu(popmenu)
        popmenu.Destroy()

    def OnChoice(self, event):
        id = event.GetId()
        obj = event.GetEventObject()
        print("Option chosen",obj.GetLabelText(id))

if __name__ == '__main__':
    app = wx.App()
    myPanel(None)
    app.MainLoop()

enter image description here

...