【问题标题】:PyQt4 : Can I intercept the currentIndexChanged signal of QComboBox?PyQt4:我可以拦截 QComboBox 的 currentIndexChanged 信号吗?
【发布时间】:2012-02-12 21:14:35
【问题描述】:

我构建了一个由 QComboBox 和 QGraphicsScene 组成的 UI,它是 QGraphicsItems。

当我更改 QComboBox 的索引时,刷新 QGraphicsScene 使其设置为默认值。为了解决它,我将几何信息存储到节点。效果很好。

此时,我想确定 QGraphicsItems 被修改了,并且它们的 geo-infos 没有被存储。因此,UI 通知用户他或她必须存储它们。

我希望它在更改 QComboBox 时发生,为此我必须拦截 currentIndexChanged 信号。这意味着QComboBox在实际改变索引之前,它会读取标志并对用户做一些事情,并且不会错过QComboBox返回到之前的索引的地理信息。

【问题讨论】:

    标签: python pyqt pyqt4 signals-slots qcombobox


    【解决方案1】:

    你的问题有点难以理解。

    您想在当前索引更改之前知道之前的索引吗?如果是,则记录之前的索引:

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

    【讨论】:

    • 是的,我试过那个“以前的索引”。但是,“currentIndexChanged”在索引更改后发出。所以回到上一个索引意味着再次调用“currentIndexChanged”信号,似乎是循环。我认为它并不复杂:)
    • @Hyun-geunKim。很难理解你想要什么。你能展示一些示例代码吗?
    • 谢谢你,ekhumoro!我刚刚使用您的建议编写了脚本。我需要另一个标志来返回上一个索引
    猜你喜欢
    • 2012-01-11
    • 1970-01-01
    • 2023-03-21
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多