PyQt中QComboBox的信号与槽

1. 声明:

select_combo = QComboBox()

2. 添加选择项

select_combo.addItem('1')
select_combo.addItem('2')

或者:

select_combo.addItems(['1', '2', '3'])

3. 信号槽的绑定

QtGui.QWidget.connect(self.comboBox, QtCore.SIGNAL('activated(int)'), self.slot())

实际绑定代码:

connect(select_combo, SIGNAL('activated(int)'), self.selected())

注意:

  • 预先声明
    from QtGui import *
    from QtGui import *
  • 绑定的SIGNAL可以为:
    activated(int)currentIndexChanged(int)
    区别:
    activated(int)当用户操作时候就会发生信号,无论值是否改变。
    currentIndexChanged(int)在系统生成和用户操作时候都会产生信号,值必须改变。
  • 槽函数不能添加SLOT()
    一般绑定槽函数时候,需要将槽函数放在SLOT()中,但是此处不可以,否则出现只能界面生成时调用一次的BUG。

4. 其他常用函数

.addItem(string)
#添加字符串项到Item
.addItems(list)
#添加列表或元组元素到Item
.clear()
#清除所有Item
.clearEditText()
#清除编辑框内容
.count()
#返回Item数目
.currentIndex()
#返回当前选择索引,从0开始
.currentText()
#返回当前选择内容
.insertItem(index,string)
#插入字符串项到Item项index后
.insertItems(index,list)
#插入列表或元组元素到Item项index后
.insertSeparator(index)
#插入分隔符到Item项index后
.itemText(index)
#返回Item项index的内容
.removeItem(index)
#删除Item项index
.setCurrentIndex(index)
#设置Item项index为当前选择
.setEditable(True)
#设置选框可编辑
.setEditText(string)
#设置编辑框内容
.setItemText(index,string)
#设置Item项index内容为字符串值