如何使用 QML 和 PyQt5 创建一个没有标题栏的小通知窗口
Posted
技术标签:
【中文标题】如何使用 QML 和 PyQt5 创建一个没有标题栏的小通知窗口【英文标题】:How to create a tiny no titlebar notification window using QML and PyQt5 【发布时间】:2019-10-11 17:06:46 【问题描述】:我们如何使用 QML 创建一个没有标题栏的小通知窗口?例如,看图片。此通知似乎是由 GTK 创建的。
我们可以使用 PyQt5 和 QML 像这样创建吗
【问题讨论】:
您在寻找Notification
吗? doc.qt.io/QtApplicationManager/…
【参考方案1】:
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;
【讨论】:
以上是关于如何使用 QML 和 PyQt5 创建一个没有标题栏的小通知窗口的主要内容,如果未能解决你的问题,请参考以下文章
Qt5 / PyQt5 : 带有 QML 前端和 Python 后端的自定义 QML 组件