菜单或popumenu clickright在combobox选择?

问题描述 投票:1回答:1

我在我的组合框中有第一个列表(可见,Infrarouge,模拟),我需要创建列表2(VIS04,VIS05,VIS06,ir039,IR087,IR103,SIM1,SIM2,SIM2),就像我在可见的时候点击我一样有类似菜单:VIS04,VIS05,VIS06和相同的infrarouge和模拟像图像描述:

enter image description here enter image description here

我怎么能有像图像描述的菜单,当我点击鼠标右键在可见或其他选择组合框我有菜单与列表选择?或所有其他建议可能

我在python3中使用wxpython

这是我的代码的一部分:

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

一些帮助或例子请

我是wxpython的新手

感谢你

python-3.x combobox menu wxpython
1个回答
0
投票

您的问题和代码参考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

© www.soinside.com 2019 - 2024. All rights reserved.