PyQT下拉框仅在用户交互时才响应

3 投票
1 回答
3501 浏览
提问于 2025-04-15 11:16

我有一个列表框,可以选择用户。在它的左边有一个下拉框,列出了可以把用户放入的可用组。如果用户已经在某个组里,下拉框会自动显示那个组。我想要实现的是,当你改变下拉框选择的组时,用户会被移动到那个组。我添加了这个连接:

QtCore.QObject.connect(self.GroupsBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.HandleGrouping)

问题是,因为我会在不同的组中选择不同的用户,每次我选择一个新用户,下拉框的默认选项就会改变,而Qt会把这个变化当作一个“当前索引改变”的信号。

似乎没有办法只在用户直接与这个控件互动时才触发这个信号。我可以用什么方法来解决这个问题呢?

1 个回答

5

从QComboBox中捕捉一个信号(activated(int index)),然后根据这个信号更新选中的用户。在你的处理函数中,如果下拉框中选中的索引和当前选中的用户所在的组是一样的,就不要做任何事情。

也许可以把下拉框放到用户列表框的右边,因为你的操作顺序是先选择用户,然后选择组。

撰写回答