PyQt4:我能拦截QComboBox的currentIndexChanged信号吗?

0 投票
1 回答
1416 浏览
提问于 2025-04-17 10:29

我搭建了一个用户界面,里面有一个下拉框(QComboBox)和一个图形场景(QGraphicsScene),还有一些图形项目(QGraphicsItems)。

当我改变下拉框的选项时,图形场景会刷新,恢复到默认状态。为了解决这个问题,我把一些几何信息存储到一个节点里,这样就能正常工作了。

现在,我想判断这些图形项目是否被修改过,如果没有存储它们的几何信息,用户就需要被提醒去保存。

我希望在改变下拉框选项时就能实现这个功能。为此,我需要拦截下拉框的当前索引变化信号。这意味着在下拉框实际改变选项之前,它会先读取一个标志,然后做一些事情来提醒用户,同时也能确保几何信息不会因为下拉框返回到之前的选项而丢失。

1 个回答

1

你的问题有点难懂。

你是想知道在当前索引变化之前的那个索引吗?如果是这样的话,你可以记录下之前的索引:

def __init__(self):
    self._previous_index = -1

def handleCurrentIndexChanged(self, index):
    # do stuff with previous_index (if valid)
    ...
    self._previous_index = index

撰写回答