Qml最小化窗口以及最小化到托盘

因为项目需求,要实现最小化到托盘。

1、系统托盘。

对于Qt5.7版本,需要自定义一个TrayIcon类继承QObject类,在TrayIcon类用新建一个QSystemTrayIcon对象。

对于Qt5.9或以上的版本,可以直接使用Qml的SystemTrayIcon元素。

2、窗口最小化。

Qt生成的窗口,点击最小化,任务栏仍然出现该软件的标签。为了解决这个问题,我们需要捕捉到最小化事件。

先注册QQuickView类到Qml中。


再连接信号。


这样,最小化时,会隐藏任务栏的标签。

如果直接使用show()方法,发现,窗口不在最前。


简单的设置一下窗口的枚举量即可。




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QML中,可以通过`Window`组件来创建窗口,并且可以根据需要设置窗口的边框、最大化和最小化属性。 首先,在QML文件中导入`QtQuick.Controls`模块,以便使用`Window`组件: ```qml import QtQuick.Controls 2.15 ``` 然后,在QML中创建一个窗口,可以设置窗口的`visible`属性为`true`,让窗口显示出来: ```qml Window { width: 400 height: 300 visible: true } ``` 要为窗口添加边框,可以使用`Window`组件的`flags`属性,并设置`Qt.FramelessWindowHint`选项: ```qml Window { width: 400 height: 300 visible: true flags: Qt.FramelessWindowHint } ``` 这样可以去掉窗口的默认边框。 接下来,可以为窗口添加最大化和最小化按钮。可以使用`Item`组件作为窗口的标题栏,并在其中添加`Button`组件: ```qml Window { width: 400 height: 300 visible: true flags: Qt.FramelessWindowHint Item { id: titleBar height: 30 width: parent.width Button { width: 30 height: 30 text: "-" onClicked: window.showMinimized() anchors.right: parent.right } Button { width: 30 height: 30 text: "+" onClicked: window.showMaximized() anchors.right: minimizeBtn.left } } } ``` 在上面的代码中,我们在标题栏`titleBar`中添加了一个`Button`组件用于最小化窗口,并设置`window.showMinimized()`来实现最小化功能,另外一个`Button`组件用于最大化窗口,并设置`window.showMaximized()`来实现最大化功能。 通过这种方式,我们可以使用QML创建具有边框、最大化和最小化功能的窗口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值