【问题标题】:Error while creating a list to populate a combo box创建列表以填充组合框时出错
【发布时间】:2012-03-22 19:17:25
【问题描述】:

在过去的一个小时里,我一直在试图找出我做错了什么,或者忽略了什么。我正在尝试根据用户选择的文件的文件扩展名填充组合框。以下是我的代码的关键部分。感谢您的帮助:

...
unit1 = 'myfile.avi'
...
...

if self.format_combo1 != 'Select Media' or self.format_combo1 != '':
        myFormat = self.format_combo1.GetValue

formats2 =['.avi','.mpeg','.mp4','.flv','.mov','.mpeg4','.mpg','.mp3','.ogg','.wav','.wma']
    FormTypes = [self.formatType(myFormat, formats2)]# Function call here
    self.format_combo2=wx.ComboBox(panel, size=(100, -1),value='Select Format', choices=FormTypes, style=wx.CB_DROPDOWN, pos=(300,81))

...
...

def formatType(self, unit1, formats2):
    auDio = ['.wav','.wma','.mp3','.ogg']
    viDeo = ['.avi','.mpeg','.mp4','.flv','.mov','.mpeg4','.mpg']
    bad_format = ['Invalid Format']
    fileExtension = os.path.splitext(unit1)[1]
    if fileExtension in formats2:
        if fileExtension in auDio:
            return auDio
        elif fileExtension in viDeo:
            return viDeo
    else:

        return bad_format

以下是我收到的回溯消息:

  Traceback (most recent call last):
  File "C:\Users\GVRSQA004\Desktop\D_Converter\med_convrt.py", line 499, in <module>
  frame = dConvert()
  File "C:\Users\GVRSQA004\Desktop\D_Converter\med_convrt.py", line 112, in __init__
  self.format_combo2=wx.ComboBox(panel, size=(100, -1),value='Select Format',          choices=FormTypes, style=wx.CB_DROPDOWN, pos=(300,81))
 File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_controls.py", line 590, in   __init__
 _controls_.ComboBox_swiginit(self,_controls_.new_ComboBox(*args, **kwargs))
 TypeError: String or Unicode type required

【问题讨论】:

  • myFormat 的类型是什么(与type(myFormat) 核对)?它似乎是一个函数而不是一个字符串。

标签: python function wxpython return-value


【解决方案1】:
myFormat = self.format_combo1.GetValue

您在这里为myFormat 分配了一个函数对象(可能您的意思是GetValue())。然后,您将调用formatType,并以myFormat 作为第一个参数,它应该是一个字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    相关资源
    最近更新 更多