如何使用QSignalMapper和Qobject :: Connect放置我的功能

发布于 2025-02-10 02:46:16 字数 442 浏览 1 评论 0原文

我是C ++的初学者。

我正在尝试使用QSignalMapper通过一个参数。我做这样的事情:

int main(int argc, char** argv)
{
    ...
    QSignalMapper * mapper = new QSignalMapper(0);
    QObject::connect(mapper,SIGNAL(mapped(int )), 0 ,SLOT(mySlot(int )));

    int prova=11;
    mapper->setMapping(but, prova);
    QObject::connect(but, SIGNAL(clicked()),mapper,SLOT(map()));
    
   //do stuff
}

可以将mySlot()放在哪里?我需要通过变量“ prova” 感谢所有。

I'm a beginner in c++.

i'm trying to pass an argument using QSignalMapper. I do something like this:

int main(int argc, char** argv)
{
    ...
    QSignalMapper * mapper = new QSignalMapper(0);
    QObject::connect(mapper,SIGNAL(mapped(int )), 0 ,SLOT(mySlot(int )));

    int prova=11;
    mapper->setMapping(but, prova);
    QObject::connect(but, SIGNAL(clicked()),mapper,SLOT(map()));
    
   //do stuff
}

Where i can put mySlot()? I need to pass the variable "prova"
Thanks to all.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑白记忆 2025-02-17 02:46:16

忘记QSignalMapper并使用lambdas:

QObject::connect(but, &QButton::clicked, myObject, [myObject,prova]() { myObject->mySlot(prova); });

MySlot的情况下只是一个常规功能:

QObject::connect(but, &QButton::clicked, [prova]() { mySlot(prova); });

Forget about QSignalMapper and use lambdas:

QObject::connect(but, &QButton::clicked, myObject, [myObject,prova]() { myObject->mySlot(prova); });

In case mySlot is just a regular function:

QObject::connect(but, &QButton::clicked, [prova]() { mySlot(prova); });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文