QT5 连接信号到功能
Posted
技术标签:
【中文标题】QT5 连接信号到功能【英文标题】:QT5 connect signal to function 【发布时间】:2017-02-14 12:28:17 【问题描述】:所以,我希望制作一个在 QT5 中按下时会变平的按钮。我读过这个https://woboq.com/blog/new-signals-slots-syntax-in-qt5.html 看来我应该能够在不制作自己的按钮类的情况下做到这一点。所以,我有
QPushButton* button = new QPushButton("text", parent);
QObject::connect(button, &QPushButton::clicked, button, &QPushButton::isFlat(true));
我得到了error: call to non-static member function without an object argument
我的问题是;我读错了这个新语法吗?我只能连接到静态函数吗?
【问题讨论】:
【参考方案1】:您正在尝试连接一个没有实例的方法,例如使用lambda
来捕获按钮实例:
QObject::connect(button, &QPushButton::clicked, button,
[&button]() button->setFlat(true));
未测试。
【讨论】:
我认为让我走上了正确的道路。[&button]() button->setFlat(true);
应该设置平坦(我的错)。这会编译但也会在按下按钮时崩溃。
知道了。现在使用[=]() button->setFlat(true);
作为最终参数,一切正常。你是男人男人!以上是关于QT5 连接信号到功能的主要内容,如果未能解决你的问题,请参考以下文章