网站建设管理的建议,WordPress英文换行,最近发生的重大新闻,怎样运营推广网站问题描述#xff1a;
在调用某个类的信号函数的时候#xff0c;出现信号函数名字相同#xff0c;参数不同的情况#xff0c;但是Qt在链接信号槽的时候#xff0c;又不需要指明信号函数参数#xff0c;此时就会出现无法分辨的情况。
例如#xff1a;QComboBox的信号 Q_…问题描述
在调用某个类的信号函数的时候出现信号函数名字相同参数不同的情况但是Qt在链接信号槽的时候又不需要指明信号函数参数此时就会出现无法分辨的情况。
例如QComboBox的信号 Q_ SIGNALS: void currentIndexChanged(int index); void currentIndexChanged(const QString ); 如果用Qt5的信号槽写法就是如下结果
connect(ui-comboBox, QComboBox::currentIndexChanged, this, MainWindow::on_ IndexChanged);
编译器会因不知道该调用哪个方法而报错。
解决办法 1、用Qt4的信号槽连接方式来写。
为什么用QT4的connect写就不会出错呢原因很简单因为QT4的写的时候需要带上信号函数和槽函数的参数类型这样就不会出现问题。
// 连接int类型的信号
connect(comboBox, SIGNAL(currentIndexChanged(int)), receiver, SLOT(mySlotInt(int)));// 连接QString类型的信号
connect(comboBox, SIGNAL(currentIndexChanged(QString)), receiver, SLOT(mySlotString(QString)));2、使用泛型 可以通过使用泛型指定要调用的函数解决信号重载问题。
connect(ui-comboBox, QOverloadint::of(QComboBox::currentIndexChanged), this,
MainWindow::on_ IndexChanged);
有用的知识又增加了~