python中的自定义PyQt MultiSelection下拉列表
我一直在为我正在开发的应用程序使用代码,我觉得行为不完整,所以我添加了一些代码,以使行为适合我正在开发的应用程序,但问题是,我似乎无法添加行为,当我再次单击它时,它将关闭而不会重新加载 首先,我在python中的自定义PyQt MultiSelection下拉列表,python,python-2.7,pyqt,pyqt4,Python,Python 2.7,Pyqt,Pyqt4,我一直在为我正在开发的应用程序使用代码,我觉得行为不完整,所以我添加了一些代码,以使行为适合我正在开发的应用程序,但问题是,我似乎无法添加行为,当我再次单击它时,它将关闭而不会重新加载 首先,我在ini函数中添加了这一行self.visible=False,因为我不知道如何检查下拉列表是否打开 第二个是我将第319行修改为: if obj == self._lineEdit: if self.visible: self.visible = False
ini
函数中添加了这一行self.visible=False
,因为我不知道如何检查下拉列表是否打开
第二个是我将第319行修改为:
if obj == self._lineEdit:
if self.visible:
self.visible = False
self.hidePopup()
else:
self.visible = True
self.showPopup()
如果您再次单击下拉列表,则此操作有效,但当我在下拉列表外部单击以关闭下拉列表时,它不会打开,直到您单击两次
我还试图修改一些事件,但我很快发现,当我单击关闭下拉菜单时,QEvent.MouseButtonPress
in line291
会触发两次
当前行为:
- 如果单击下拉列表,下拉列表将打开
- 如果我再次单击下拉列表,下拉列表将关闭
- 如果下拉列表打开,并且我在下拉列表外单击,则下拉列表关闭
- 如果我在通过单击外部关闭下拉列表后单击了它,则下拉列表直到第二次单击才会打开(我的问题)
我如何使其在单击下拉列表时,即使我在外部单击,它也能正常打开和关闭。我有一个大问题:您想添加什么行为?为了澄清这一点,如果我通过单击下拉列表外部来关闭下拉列表,则需要单击鼠标两次才能打开下拉列表。我想要它做的是一次点击就再次打开。不管我如何关闭它,它是在原始代码中还是在您的修改中发生的?我只是尝试了最初的例子,我没有看到这种行为。是的,它发生在修改之后。最初的行为是,单击下拉列表将打开它并仅打开(除此之外的按钮被排除)。我的目标就像按钮的行为我的问题是:你想在原始代码中添加什么功能?也许这是走错了路,我们可以指出正确的路,那就是,请回答我的问题。