Как создать маленькое окно уведомления без заголовка, используя QML и PyQt5 - PullRequest
0 голосов
/ 11 октября 2019

Как мы можем создать маленькое окно уведомлений, используя QML без строки заголовка? Например, посмотрите на картинку. Это уведомление похоже на то, что оно было создано GTK.

This Image.

мы можем создать подобное, используя PyQt5 и QML

1 Ответ

0 голосов
/ 11 октября 2019

QML - очень гибкий язык, вы можете создавать практически все, что захотите. В вашем случае я бы использовал какой-нибудь системный инструмент, так как он не кроссплатформенный и работает как положено. Но вы всегда можете создать свое собственное окно, например:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.5
import Qt.labs.platform 1.1

Window {
    visible: true
    width: 400
    height: 100

    RowLayout {
        anchors.centerIn: parent
        Button {
            text: "systray message"
            onClicked: {
                systray.showMessage("title", "message", SystemTrayIcon.Warning, 2000)
            }
        }
        Button {
            text: "custom message"
            onClicked: {
                popup.show();
            }
        }
    }

    SystemTrayIcon {
        id: systray
          visible: true
          icon.source: "qrc:/ok.png"
          icon.mask: false
    }

    Window {
        id: popup
        flags: Qt.FramelessWindowHint
        x: Screen.width - 350
        y: Screen.height - 150
        width: 300
        height: 30
        Rectangle {
            anchors.fill: parent
            color: "black"
            Text {
                anchors.centerIn: parent
                text: "Some custom message"
                color: "white"
            }
        }
        Timer {
            id: timer
            interval: 2000;
            running: false;
            repeat: false
            onTriggered: popup.close()
        }
        onVisibleChanged: {
            if(visible)
                timer.running = true;
        }
    }
}
...