我有一个类ArrayToolBar,它有一个公共成员commandBox和一个公共函数createArray()。
class ArrayToolBar : public QToolBar
{
Q_OBJECT
public:
explicit ArrayToolBar(const QString &title, QWidget *parent);
CommandBox* commandBox = new CommandBox();
void createArray();下面是如何定义createArray()
void ArrayToolBar::createArray(){
commandBox->setFocus();
connect(commandBox, SIGNAL(returnPressed()), this, SLOT(commandBox->SubmitCommand()));
}SubmitCommand()是
CommandBox类中的一个公共插槽。
我的问题是,我得到了一个错误:不存在这样的插槽。这是因为我在ArrayToolBar中使用了其他类的一个插槽吗?有绕道的路吗?
发布于 2018-12-10 10:11:20
您可以在labmda表达式中使用新的连接语法。
Qt对此有很好的了解。Syntax
最后的代码如下所示:
connect(commandBox, &CommandBox::returnPressed,
this, [=] () {commandBox->SubmitCommand();});发布于 2018-12-10 10:55:56
您可以像前面提到的那样使用lambda表达式。
但如果没有兰巴,这应该能做你想做的事:
connect(commandBox, SIGNAL(returnPressed()), commandBox, SLOT(SubmitCommand()))https://stackoverflow.com/questions/53702212
复制相似问题