#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from PySide2.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QHBoxLayout, QSizePolicy
from PySide2.QtGui import QPixmap
from PySide2.QtCore import Qt


class NotifyWidget(QWidget):
    def __init__(self, pixmapIcon, titleText, msgText):
        super(NotifyWidget, self).__init__()
        self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowSystemMenuHint | Qt.WindowStaysOnTopHint)

        self.setAttribute(Qt.WA_NoSystemBackground, True)
        self.setAttribute(Qt.WA_TranslucentBackground, True)

        self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)

        displayWidget = QWidget()

        displayWidget.setGeometry(0, 0, self.width(), self.height())
        displayWidget.setStyleSheet(".QWidget { background-color: rgba(0, 0, 0, 75%); border-width: 1px; border-style: solid; border-radius: 10px; border-color: #555555; } .QWidget:hover { background-color: rgba(68, 68, 68, 75%); border-width: 2px; border-style: solid; border-radius: 10px; border-color: #ffffff; }")

        icon = QLabel()
        icon.setPixmap(pixmapIcon)
        icon.setMaximumSize(32, 32)
        title = QLabel()
        title.setMaximumSize(400, 50)
        title.setWordWrap(True)
        title.setText(titleText)
        title.setStyleSheet("QLabel { color: #ffffff; font-weight: bold; font-size: 12px; }")
        message = QLabel()
        message.setMaximumSize(400, 100)
        message.setWordWrap(True)
        message.setText(msgText)
        message.setStyleSheet("QLabel { color: #ffffff; font-size: 10px; }")
        displayMainLayout = QHBoxLayout()
        displayMainLayout.addWidget(icon)
        vl = QVBoxLayout()
        vl.addWidget(title)
        vl.addWidget(message)
        displayMainLayout.addLayout(vl)
        displayWidget.setLayout(displayMainLayout)

        containerLayout = QHBoxLayout()
        containerLayout.addWidget(displayWidget)
        self.setLayout(containerLayout)

if __name__ == '__main__':
    app = QApplication(sys.argv)

    pixmapIcon = QPixmap("path/to/pixmap")
    titleText = u"A title"
    msgText = u"A test Message..."
    main = NotifyWidget(pixmapIcon, titleText, msgText)

    main.show()
    sys.exit(app.exec_())
