Как реализовать выдвигающееся меню?

На подобии этого -
5b2269262c61a016532307.png
  • Вопрос задан
  • 575 просмотров
Решения вопроса 1
sanya84
@sanya84
Фанатик Python 3
Вот так можно начать, дальше сами развивайте
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt


class PopupMenu(QWidget):
    
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Пример всплывающего меню')
        self.resize(300, 300)
        
        self.label = QLabel(self)
        self.label.setText("МЕНЮ")

        self.popup_menu = QLabel(self)
        self.popup_menu.resize(180, 100)
        self.popup_menu.setText("Hello PyQt5!")
        self.popup_menu.setStyleSheet("border: 2px solid grey; font: 75 italic 16pt Verdana;\
                text-align: center; border-radius: 10px;\
                background-color: lightblue; width: 10px;")

        self.popup_menu.hide()

        hbox = QHBoxLayout()
        hbox.setAlignment(Qt.AlignCenter)
        hbox.addStretch(2)
        hbox.addWidget(self.label)
        hbox.addWidget(self.popup_menu)

        self.label.installEventFilter(self)

    def eventFilter(self, obj, event):
        # Если мышь над виджетом
        if event.type() == 10:
            self.popup_menu.show()
            
        # Если мышь покинула область виджета
        elif event.type() == 11:
            pass
        return False


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = PopupMenu()
    window.show()
    sys.exit(app.exec_())
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы