wxpython 隐藏_wxPython有条件地显示和隐藏

我是wxPython新手,我想用它来构建一个简单的动态UI,它有条件地显示和隐藏一些下拉框,这可以在jQuery中轻松完成。在

因此,在我的第一级组合框中,如果用户选择“Op1_1”,则会出现第二级组合框a。另一方面,如果在同一位置选择“Op1_2”,则会生成不同的二级组合框B。在问题1:我可以在

飞,但它的位置不正确。从附图来看,你

可以看到它总是在左上角。有没有办法重新定位这个?在

问题2:如果第一个第二个组合框A被生成,那么用户选择“Op1\u 2”,理论上,组合框B将取代组合框A。但我遇到了一个错误wxGridBagSizer::Add(): An item is already at that position。如何销毁先前制造的盒子?在

问题3:有没有一种方法可以集成wxPython和jQuery,从而使我的生活更轻松。。。。在

import wx

class landing_frame(wx.Frame):

def __init__(self, parent, title):

super(landing_frame, self).__init__(parent, title=title,

size=(450, 350))

self.font1 = wx.Font(18, wx.DECORATIVE, wx.ITALIC, wx.BOLD)

self.InitUI()

self.Centre()

self.Show()

def InitUI(self):

self.panel = wx.Panel(self)

self.sizer = wx.GridBagSizer(5, 5)

self.text1 = wx.StaticText(self.panel, label="Welcome!")

self.sizer.Add(self.text1, pos=(0, 0), flag=wx.TOP|wx.LEFT|wx.BOTTOM, border=15)

line = wx.StaticLine(self.panel)

self.sizer.Add(line, pos=(1, 0), span=(1, 5), flag=wx.EXPAND|wx.BOTTOM, border=10)

self.text2 = wx.StaticText(self.panel, label="First Level Dropdown")

self.sizer.Add(self.text2, pos=(2, 0), flag=wx.LEFT, border=10)

self.sampleList = ['Op1_1', 'Op1_2']

self.combo = wx.ComboBox(self.panel, 30, choices=self.sampleList)

self.combo.Bind(wx.EVT_COMBOBOX, self.EvtComboBox)

self.sizer.Add(self.combo, pos=(2, 1), span=(1, 2), flag=wx.TOP|wx.EXPAND, border=5)

self.panel.SetSizer(self.sizer)

def EvtComboBox(self, event):

self.user_choice = event.GetString()

if self.user_choice == "Op1_1":

self.sampleList_ss1 = ['Op2_1_1', 'Op2_1_2', 'Op2_1_3']

self.combo_ss1 = wx.ComboBox(self.panel, 31, choices=self.sampleList_ss1)

self.combo_ss1.Bind(wx.EVT_COMBOBOX, self.EvtComboBox)

self.sizer.Add(self.combo_ss1, pos=(3, 1), span=(1, 2), flag=wx.TOP|wx.EXPAND, border=5)

self.panel.SetSizer(self.sizer)

if self.user_choice == "Op1_2":

self.sampleList_ss2 = ['Op2_2_1', 'Op2_2_2', 'Op2_2_3']

self.combo_ss2 = wx.ComboBox(self.panel, 31, choices=self.sampleList_ss2)

self.combo_ss2.Bind(wx.EVT_COMBOBOX, self.EvtComboBox)

self.sizer.Add(self.combo_ss2, pos=(3, 1), span=(1, 2), flag=wx.TOP|wx.EXPAND, border=5)

self.panel.SetSizer(self.sizer)

if __name__ == '__main__':

app = wx.App(redirect=False, filename="mylogfile.txt")

landing_frame(None, title="Test")

app.MainLoop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值