Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的自定义PyQt MultiSelection下拉列表_Python_Python 2.7_Pyqt_Pyqt4 - Fatal编程技术网

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 line
291
会触发两次

当前行为:

  • 如果单击下拉列表,下拉列表将打开
  • 如果我再次单击下拉列表,下拉列表将关闭
  • 如果下拉列表打开,并且我在下拉列表外单击,则下拉列表关闭
  • 如果我在通过单击外部关闭下拉列表后单击了它,则下拉列表直到第二次单击才会打开(我的问题)

我如何使其在单击下拉列表时,即使我在外部单击,它也能正常打开和关闭。

我有一个大问题:您想添加什么行为?为了澄清这一点,如果我通过单击下拉列表外部来关闭下拉列表,则需要单击鼠标两次才能打开下拉列表。我想要它做的是一次点击就再次打开。不管我如何关闭它,它是在原始代码中还是在您的修改中发生的?我只是尝试了最初的例子,我没有看到这种行为。是的,它发生在修改之后。最初的行为是,单击下拉列表将打开它并仅打开(除此之外的按钮被排除)。我的目标就像按钮的行为我的问题是:你想在原始代码中添加什么功能?也许这是走错了路,我们可以指出正确的路,那就是,请回答我的问题。