2016-03-31 9 views
2

辞書名fields={}には、後でQtコモボックスオブジェクトという名前のフィールド名が含まれています。例えば、キーcombobox1combobox2のために、両方のは、私が____key____が辞書のキーに置き換えられるように、最後の行の正しい構文が何であるかをPythonの変数メソッド名

fields={} 
fields['combobox1']=['value1','someting else'] 
fields['combobox2']=['bla','another value'] 

for key,values in fields.items(): 
    for value in values: 
     Qt_ui. _____key_____ .addItem(value) 

に追加したい値のリストが含まれていますか?私はui.__getattribute__(key).addItem(value)を試しましたが、動作しないようです。どんな提案も感謝しています。

TypeError: 'PySide.QtGui.QComboBox.addItem' called with wrong argument types: 
    PySide.QtGui.QComboBox.addItem(float) 
Supported signatures: 
    PySide.QtGui.QComboBox.addItem(PySide.QtGui.QIcon, unicode, QVariant = QVariant()) 
    PySide.QtGui.QComboBox.addItem(unicode, QVariant = QVariant()) 
+1

「ui .__ getattribute __(キー)」の部分が機能しているようです。 'value'は浮動小数点として見えます。あなたは 'Qt_ui ....'を呼び出す前にそれを印刷できますか? –

+0

はい、あなたは正しいです、それは文字列である必要があります、解決された問題。ありがとう – Nickpick

答えて

1

実際には問題がのgetAttribute(キー)が正しいですが、追加の項目が文字列である必要がどこか別の場所でした。いずれにしても、これは面白い問題だと思っていました。

ui.__getattribute__(key).addItem(str(value)) 
+1

'getattr(ui、key).addItem(value)'です。 – ekhumoro

関連する問題