【问题标题】:Catching currentindex of a QComboBox捕获 QComboBox 的当前索引
【发布时间】:2016-04-05 15:09:18
【问题描述】:

我有一个包含三个元素的弹出列表(QComboBox),我想显示一个 toolTip(通过调用的 setToolTip QComboBox) 取决于项目的编号。

显示工具提示可以正常工作,但它是静态的,当用户选择与第一个不同的项目时它不会改变。

这个想法是每次用户选择一个项目时获取当前项目编号,并将该项目的编号传递给方法algorithms_info

方法algorithms_info的签名是:

def algorithms_info(self, a=0):

所以我设置了一个信号:

self.algoList.connect(self.algoList, QtCore.SIGNAL(_fromUtf8("currentItemChanged(int)")), self.algorithms_info(int)) 

当我运行脚本时,会显示以下错误:

TypeError: arguments did not match any overloaded call:
QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'

错误在信号声明中,但如果您对以其他方式执行此操作有任何建议,那么我会很高兴。

【问题讨论】:

    标签: qt pyqt pyqt4


    【解决方案1】:

    您只需要self.algoList.currentItemChanged.connect(self.algorithms_info)。我想在这之后,你会没事的。

    【讨论】:

      【解决方案2】:

      您可以在每个项目上设置工具提示,因此不需要信号:

      for index in range(10):
          combo.setItemData(index, 'Item (%d)' % index, QtCore.Qt.ToolTipRole)
      

      【讨论】:

        猜你喜欢
        • 2020-06-26
        • 2019-10-26
        • 2011-11-12
        • 2018-12-24
        • 1970-01-01
        • 2011-08-29
        • 2015-05-27
        • 1970-01-01
        • 2014-12-05
        相关资源
        最近更新 更多