hjjtzt 2019-05-14 12:06 采纳率: 0%
浏览 593

Qt里qml中onActivated要换onTrigger报异常 求大神看看 解决必有重谢

qml代码

 CMSystemTrayIcon {
        id: trayIcon
        visible: true

        //onActivated: { trayMenu.showMenu(trayIcon.geometry) }
        onTrigger:{ root.showNormal()}
        onDoubleClick: {trayMenu.showMenu(trayIcon.geometry)}
    }

头文件

#pragma once

#include <QSystemTrayIcon>

class CMSystemTrayIcon : public QSystemTrayIcon {
    Q_OBJECT
    Q_PROPERTY(QRect geometry READ getGeometry CONSTANT)

public:
    Q_ENUM(ActivationReason)
    static void RegisterType();

    CMSystemTrayIcon(QObject* parent = nullptr);

    QRect getGeometry() const;
signals:
    void trigger();
    void doubleclick();

private slots:
    void onActivated(QSystemTrayIcon::ActivationReason reason);

};

Q_DECLARE_METATYPE(QSystemTrayIcon::ActivationReason)

cpp

#include "app/CMSystemTrayIcon.h"

#include <QQmlEngine>

void CMSystemTrayIcon::RegisterType() {
    qRegisterMetaType<ActivationReason>("ActivationReason");
    qmlRegisterType<CMSystemTrayIcon>("CM.App", 1, 0, "CMSystemTrayIcon");
}

CMSystemTrayIcon::CMSystemTrayIcon(QObject* parent)
    : QSystemTrayIcon(parent) {
    setIcon(QIcon(":/images/cm_logo_tray.png"));
}

QRect CMSystemTrayIcon::getGeometry() const {
    return geometry();
}

void CMSystemTrayIcon::onActivated(QSystemTrayIcon::ActivationReason reason)
{
    switch (reason)
    {
    case QSystemTrayIcon::DoubleClick:
        emit doubleclick();
    case QSystemTrayIcon::Trigger:
        emit trigger();

    default:
        break;
    }
}

图片说明

求大神帮帮忙啊 实在看不出来错误 必有酬谢

需要把激活的操作换为单双击不同的操作

  • 写回答

1条回答 默认 最新

  • qtchen_1988 2019-05-16 12:23
    关注

    这是运行时错误,估计是列表越界的问题; onTrigger:{ root.showNormal()} onDoubleClick: {trayMenu.showMenu(trayIcon.geometry)}
    这两个函数实现没给出,判断不出来,你可以把这两个函数注释掉,或者用debug调式跟踪,应该容易找出来

    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题