Пользовательский выпадающий список PyQt MultiSelection в Python - PullRequest
0 голосов
/ 29 июня 2018

Я использовал его код для моего приложения, которое я разрабатываю, я чувствовал, что поведение неполное, поэтому я добавил несколько кодов, чтобы привести поведение в соответствие с тем, что я разрабатываю, но проблема в том, что я не могу добавить поведение, когда я снова щелкаю по нему, он закрывается, не перезагружается.

Сначала я добавил эту строку self.visible=False в функцию ini, поскольку не знаю, как проверить, открыто ли раскрывающееся меню.

Вторая измененная строка 319:

if obj == self._lineEdit:
       if self.visible:
            self.visible = False
            self.hidePopup()
        else:
            self.visible = True
            self.showPopup()

Это работает, если вы нажимаете на раскрывающийся список снова, но когда я нажимаю за пределами раскрывающегося списка, чтобы закрыть раскрывающийся список, он не открывается, пока вы не щелкнете по нему дважды

Я также пытался изменить некоторые события, но быстро обнаружил, что при нажатии для закрытия раскрывающегося списка QEvent.MouseButtonPress в строке 291 срабатывает дважды.

Текущее поведение:

  • если я щелкнул раскрывающийся список, откроется раскрывающийся список
  • если я снова нажму на выпадающее меню, оно закроется
  • если раскрывающийся список открыт, и я щелкнул за пределами раскрывающегося списка, раскрывающийся список закрывается
  • если я щелкнул раскрывающийся список после закрытия, щелкнув снаружи, раскрывающийся список не откроется до второго щелчка (Моя проблема)

Как сделать так, чтобы при нажатии на раскрывающееся меню он правильно открывался и закрывался, даже если я щелкал снаружи.

...