组合框的 GetSelection 方法在 wxPython 中不起作用

GetSelection method for combobox doesn't work in wxPython

我正在尝试为 youtube-dl 制作 GUI

我使用 wxFormBuilder 制作 GUI 布局,然后通过导入 wxFormBuilder 生成的代码在另一个脚本中编写代码。 GUI 工作正常,但我无法从下拉菜单中获取 select 值的索引。

这是定义组合框属性的代码部分

quality_selection_drop_downChoices = [ u"720p", u"Best Quality Available", u"Audio (mp3)", u"Non Youtube" ]
self.quality_selection_drop_down = wx.ComboBox( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( -1,-1 ), quality_selection_drop_downChoices, 0 )
self.quality_selection_drop_down.SetSelection( 4 )
gbSizer1.Add( self.quality_selection_drop_down, wx.GBPosition( 2, 1 ), wx.GBSpan( 1, 3 ), wx.ALL|wx.EXPAND, 5 )

这是我编写的代码,用于检查组合框值是否return编辑正确

def video_dl(self, event):
    print(self.quality_selection_drop_down.GetSelection)

video_dl 命令被设置为 GUI 中按钮的事件。它returns

<built-in method GetSelection of ComboBox object at 0x0000017820621670>

而不是给出我选择的 selection 的索引。我尝试使用 GetSelection、GetCurrentSelection、GetValue、GetString、GetStringSelection。所有这些 return 都是与上面提到的一脉相承的输出。 整个代码在 github 上,因此您可以查看整个代码:github repo

非常感谢任何帮助!!谢谢!

错误是,当您获得选择时,您会这样做:

self.quality_selection_drop_down.GetSelection

而不是这个:

self.quality_selection_drop_down.GetSelection() #returns the index of the combobox
self.quality_selection_drop_down.GetStringSelection() #returns the string associated to the combobox

请记住,当您调用一个方法或函数时,您必须像 foo() 一样用左括号和右括号调用它。在没有括号的情况下调用它,您可以调用它的 __repr__() 方法,这会为您提供有关方法或它所属的对象的一般信息