微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

组合框的 GetSelection 方法在 wxPython

如何解决组合框的 GetSelection 方法在 wxPython

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

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

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

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 )

这是我编写的用于检查组合框值是否正确返回的代码

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

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

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

而不是给出我选择的选择的索引。我尝试了 GetSelection、GetCurrentSelection、GetValue、GetString、GetStringSelection。所有这些都以与上述相同的方式返回输出。 整个代码都在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__() 方法,它为您提供有关该方法或它所属的对象的一般信息

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。