Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在选择框中的项目时更新静态文本或textctrl*只读*_Python_Wxpython - Fatal编程技术网

Python 在选择框中的项目时更新静态文本或textctrl*只读*

Python 在选择框中的项目时更新静态文本或textctrl*只读*,python,wxpython,Python,Wxpython,基本上,我要做的是获取一个静态标签或只读textctrl,以便根据在choice小部件中选择的项目相应地更改其价格。项目ID的列表和各自的价格共享相同的索引,尽管它们同时创建在两个不同的列表上。。。问题是,无论我选择什么项目,价格都保持不变,上面的代码都有静态文本方法。。。只读文本CTRL原来是相同的,对可以做什么有什么想法吗 有关对话框的代码 class AddItemOrder ( wx.Dialog ): def __init__( self, parent,entryit ):

基本上,我要做的是获取一个静态标签或只读textctrl,以便根据在choice小部件中选择的项目相应地更改其价格。项目ID的列表和各自的价格共享相同的索引,尽管它们同时创建在两个不同的列表上。。。问题是,无论我选择什么项目,价格都保持不变,上面的代码都有静态文本方法。。。只读文本CTRL原来是相同的,对可以做什么有什么想法吗

有关对话框的代码

class AddItemOrder ( wx.Dialog ):

    def __init__( self, parent,entryit ):
            wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"Add Item", pos = wx.DefaultPosition, size = wx.Size( 285,173 ), style = wx.DEFAULT_DIALOG_STYLE )
            self.entryit = entryit
            self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
            self.ite = i.Item()
            bSizer25 = wx.BoxSizer( wx.VERTICAL )

            gSizer9 = wx.GridSizer( 2, 2, 0, 0 )

            self.m_staticText34 = wx.StaticText( self, wx.ID_ANY, u"Item ID", wx.DefaultPosition, wx.DefaultSize, 0 )
            self.m_staticText34.Wrap( -1 )
            gSizer9.Add( self.m_staticText34, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )

            self.m_choice2Choices = []
            self.create_choices(self.m_choice2Choices)
            self.Item_ID = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, self.m_choice2Choices, 0 )
            self.Item_ID.SetSelection( 0 )
            self.Item_ID.Bind(EVT_CHOICE,self.get_index)
            gSizer9.Add( self.Item_ID, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL, 5 )

            self.m_staticText17 = wx.StaticText( self, wx.ID_ANY, u"Item Price", wx.DefaultPosition, wx.DefaultSize, 0 )
            self.m_staticText17.Wrap( -1 )
            gSizer9.Add( self.m_staticText17, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )

            self.Order_Price = wx.StaticText( self, wx.ID_ANY, str(self.prices[self.Item_ID.GetSelection() ]), wx.DefaultPosition, wx.DefaultSize, 0 )
            self.Order_Price.Wrap( -1 )
            self.Order_Price.SetLabel(str(self.prices[self.Item_ID.GetSelection() ]))
            gSizer9.Add( self.Order_Price, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )



            self.m_staticText35 = wx.StaticText( self, wx.ID_ANY, u"Item Qty", wx.DefaultPosition, wx.DefaultSize, 0 )
            self.m_staticText35.Wrap( -1 )
            gSizer9.Add( self.m_staticText35, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )

            self.Item_Qty = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 120,-1 ), 0 )
            gSizer9.Add( self.Item_Qty, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )

            bSizer25.Add( gSizer9, 1, wx.EXPAND, 5 )

            self.m_button19 = wx.Button( self, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0 )
            self.m_button19.Bind(wx.EVT_BUTTON, self.ok)

            bSizer25.Add( self.m_button19, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )

            self.SetSizer( bSizer25 )
            self.Layout()

            self.Centre( wx.BOTH )
创建选项和获取索引函数

    def create_choices(self,event):
        self.prices = []
        for entry in self.ite.entries:
            self.custom = entry.Item_ID
            self.customPr = entry.Item_Price
            self.prices.append(self.customPr)
            self.m_choice2Choices.append(self.custom)
        return self.m_choice2Choices

    def get_index(self,event):
        self.currIndex = self.Item_ID.GetSelection()
        return self.currIndex   

当您想要更改statictext显示的文本时(在本例中可能是在EVT_选择处理程序中),您只需要使用新文本调用statictext的SetLabel方法。比如说:

newText = str(self.prices[self.currIndex])
self.m_staticText17.SetLabel(newText)