我的标签窗口小部件脚本中有一个名为Cuentas的类。它将打开一个新的MainWindow,其中包含几个可编辑的组合框。几乎所有选项卡都一样。我需要知道所选的组合框名称和当前文本。
这就是我所拥有的:
def eventFilter(self, obj, event):
if event.type() == QtCore.QEvent.FocusIn:
if obj == self.CB_Grupo:
text = str(self.CB_Grupo.currentText())
if obj == self.CB_Nombre:
text = str(self.CB_Nombre.currentText())
if obj == self.CB_Banco:
text = str(self.CB_Banco.currentText())
print text
cb_name = obj.objectName()
cb_name = str(cb_name)
print cb_name
有效。 为了简化起见,我尝试为组合框名称使用变量
cb_text = str(self.cb_name.currentText())
return super(Cuentas, self).eventFilter(obj, event)
我收到此错误:AttributeError:'Cuentas'对象没有属性'cb_name'
我在做什么错了?
答案 0 :(得分:0)
如果您检查代码 self。。cb_name表示cb_name是类的属性,但不是,它是表示某些元素的objectName的字符串。如果要减少代码,则必须执行以下操作:
def eventFilter(self, obj, event):
if event.type() == QtCore.QEvent.FocusIn and obj in (self.CB_Grupo, self.CB_Nombre, self.CB_Banco):
cb_text = str(obj.currentText())
print(cb_text)
return super(Cuentas, self).eventFilter(obj, event)