我想连接到图例标签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语法一切都很好,使用新语法永远不会到达插槽。有任何想法吗?非常感谢你!
答案 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。