Qt Qt:如何连接信号与新的信号/插槽风味?

时间:2014-06-03 08:49:53

标签: qt syntax signals qwt slot

我想连接到图例标签SIGNAL已选中。使用Qts旧信号/插槽语法都很完美,但我想使用新连接来启用编译时检查?有关如何通过新的Signal / Slot-Syntax连接它的想法吗?

这是我的代码:

connect( m_plotLegend, SIGNAL( checked( const QVariant &, bool, int ) ), SLOT(legendChecked( const QVariant &, bool ) ) );
//connect(m_plotLegend, &QwtLegend::checked, this, &MeasurePlot::legendChecked);

使用oldy语法一切都很好,使用新语法永远不会到达插槽。有任何想法吗?非常感谢你!

2 个答案:

答案 0 :(得分:0)

您的连接应该有效。

我用你的Examplecode测试它,它工作正常:

定义:

...
private slots:
void test(const QVariant &, bool);

signals:
void checked( const QVariant &, bool, int );
...

连接:

...
connect(this, &TestClass::checked, this,  &TestClass::test);

emit checked(QVariant(QString("test")), true, 1);
...

插槽:

void TestClass::test(const QVariant &, bool)
{
...
}

希望有所帮助。

答案 1 :(得分:0)

似乎5年后,情况依然如此。旧的SIGNAL / SLOT语法适用于Qwt信号/插槽,但新的语法无效。您将得到“在[Qwt类别名称]中找不到QObject :: connect:信号。”

作为参考,我目前正在使用Qwt 6.1.2和Qt 5.9.6。