• 184阅读
  • 6回复

[提问]QML做的窗口如何自定义左上角的图标? [复制链接]

上一主题 下一主题
离线rpdhunter
 

只看楼主 倒序阅读 楼主  发表于: 07-03
Qt Widget里面设置窗口图标非常简单,只需要QWdiget.setWindowIcon()
那么在QML里面,ApplicationWindow类型,却没有对应的图标属性,而且我看qt自带的QML例子,也没有发现自定图标的实例
那么请问,到底如何在QML里面实现这个功能?



[img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\37971342\QQ\WinTemp\RichOle\@PRYAXM1TO3N~CR3J@18@C5.png[/img]
离线lemonzll

只看该作者 1楼 发表于: 07-03
用QWindow::setIcon函数。你要是用QQuickView,直接调用这个函数就可以了,要是用QQmlApplicationEngine,用下面这段代码
    auto window = qobject_cast<QQuickWindow*>(engine.rootObjects().first());
    if (window) {
        window->setIcon(QIcon(":/icon.ico"));
    }
Windows上你要是程序图标和左上角图标一直是一样的,直接在pro文件里写RC_ICONS += icon.ico就可以了,这样左上角会显示程序图标
离线nigoole

只看该作者 2楼 发表于: 07-03
这个功能在main里面设置一样的app.setWindowIcon()
有句话说得好:好好学习,天天向上。加油~~!
离线rpdhunter

只看该作者 3楼 发表于: 07-03
回 lemonzll 的帖子
lemonzll:用QWindow::setIcon函数。你要是用QQuickView,直接调用这个函数就可以了,要是用QQmlApplicationEngine,用下面这段代码
    auto window = qobject_cast<QQuickWindow*>(engine.rootObjects().first());
    if (window) {
  .. (2017-07-03 14:47) 

感谢
离线rpdhunter

只看该作者 4楼 发表于: 07-03
回 nigoole 的帖子
nigoole:这个功能在main里面设置一样的app.setWindowIcon()
 (2017-07-03 15:06) 

非常感谢
离线rpdhunter

只看该作者 5楼 发表于: 07-03
楼上两位大神的方法我都试过了

亲测有效!

我用的QQmlApplicationEngine模式调用QML,所以2楼的方式更简洁
在线never_forget

只看该作者 6楼 发表于: 07-03
那么多事,自己放一个 矩形,神马事搞不定哦!
快速回复
限100 字节
 
上一个 下一个