gpt4 book ai didi

c++ - Qt 最小化任务栏图标鼠标事件

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:26 25 4
gpt4 key购买 nike

我几乎尝试了所有可能的方法来将任务栏图标的 activated() 信号挂接到相应的插槽。但是,我不明白为什么 Qt(Qt5 Cretor) 说我没有插槽的匹配功能。

Qt Error:

C:\Users\potato\Desktop\CCT-master\CCTracker\cctsystemtray.cpp:40: error: no matching function for call to 'QObject::connect(QSystemTrayIcon*&, const char*, CCTSystemTray* const, const char*)'this, SLOT(systrayActivated(QSystemTrayIcon::ActivationReason)))

据我所知,根据Qt Documentation ,

activated() 信号用于捕获鼠标事件,例如任务栏图标的单击和双击。起初我以为它只是信号和插槽,但后来出于某种原因 activated() 不适合。如果我尝试将 activated() 连接到另一个类的插槽,由于指针错误,一切都会失败。

这是 CCTSystemTray.h 中的工作部分:

class CCTSystemTray
{
public:
CCTSystemTray();
void initSystemTray(QWidget *rootWindow);
private:
QSystemTrayIcon* systray;

public slots:
void systrayActivated(QSystemTrayIcon::ActivationReason);
};

CCTSystemTray.cpp:

// Above are Class declearations, menu items, etc...

QObject::connect(this->systray, SIGNAL(QSystemTrayIcon::activated(QSystemTrayIcon::ActivationReason reason)),
this, SLOT(systrayActivated(QSystemTrayIcon::ActivationReason)));
}

void CCTSystemTray::systrayActivated(QSystemTrayIcon::ActivationReason)
{
qDebug() << "Hello";
}

可以找到完整的代码示例 herepastebin .

如果有人能帮我解决拔毛问题,那就太好了!

谢谢大家。

最佳答案

您的类 CCTSystemTray 有一个插槽,但它不是 QObject(它不是从 QObject 派生的或从 QObject 派生的另一个类),而且您还需要Q_OBJECT 宏在您的类声明中,然后信号和槽将起作用。

关于c++ - Qt 最小化任务栏图标鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22927665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com