如何获取触发 def onCurrentIndexChanged(self, index) 的 QCombobox 的名称:

How do I get the name of the QCombobox which is triggering def onCurrentIndexChanged(self, index):

我的 Ui_MainWindow 中有两个 Qcomboboxes。我如何确定它们中的哪一个触发了 def onCurrentIndexChanged(self, index):???当我打印 self.class.name it returns "Ui_MainWindow"...我想要window???

中 Qcombobox 的名称
def onCurrentIndexChanged(self, index):
   
    print(self.__class__.__name__)
    id_ = self.cboDebtor.itemData(index, IdRole)
    # or
    # id_ = self.model.item(index).data(IdRole)

假设您有一个连接到插槽的方法,您可以在该方法中使用 self.sender() 来检索发送信号的小部件。

因此,如果您想显示发送信号的小部件的名称,请这样做:

def onCurrentIndexChanged(self, index):
    print(self.sender().objectName())

根据您的描述,您可能想要执行以下操作:

def onCurrentIndexChanged(self, index):
    sender_name = self.sender().objectName()
    if sender_name == 'foo':  # QComboBox 1's name
        self.do_something()
    elif sender_name == 'bar':  # QComboBox 2's name
        self.do_something_else()
    # etc