QComboboxにはOrderedDictが良さげ
Comboboxのインデックスと処理が1:1だと便利
dictは追加した要素を不定の順序でイテレートするので
挿入順を保存したい場合は OrderedDict を使う
# conding: utf-8 import sys from PySide.QtCore import * from PySide.QtGui import * import collections # entry point if __name__ == '__main__': myapp = QApplication(sys.argv) widget = QWidget() layout = QHBoxLayout(widget) lhs = QSpinBox() ope = QComboBox() rhs = QSpinBox() btn = QPushButton('Calc') ans = QLabel('???') widget.setLayout(layout) layout.addWidget(lhs) layout.addWidget(ope) layout.addWidget(rhs) layout.addWidget(btn) layout.addWidget(ans) # 辞書に追加した順序が保持される operators = collections.OrderedDict(( ('Add', lambda x, y : x + y), ('Sub', lambda x, y : x - y), ('Mul', lambda x, y : x * y), ('Div', lambda x, y : x / y), )) # コンボボックスに追加 ope.addItems(list(operators.keys())) # 計算ボタンがおされたときの処理 def calc(): x = operators[ ope.currentText() ](lhs.value(), rhs.value()) ans.setText(str(x)) # ボタン押下イベントに接続 btn.clicked.connect(calc) widget.show() sys.exit(myapp.exec_())