我创建了涉及从一个组合框(evaluation_box),导致加载所有有关这一特定主题到另一个组合框(sequence_combo_box)主题主题的选择的GUI问题。关于SIGNAL/SLOT QT4
用于信号/槽的代码如下
connect(ui_.evaluation_box, SIGNAL(currentIndexChanged(QString)), ui_.sequence_combo_box, SLOT(readSequenceFile(char *,char *,struct dirent *)));
但是,在这样做时出现以下错误消息:
Object::connect: No such slot QComboBox::readSequenceFile(char *,char *,struct dirent *)
Object::connect: (sender name: 'evaluation_box')
Object::connect: (receiver name: 'sequence_combo_box')
头文件包括以下内容:
#ifndef rqt_get_sequence_feeder__GetSequenceFeeder_H
#define rqt_get_sequence_feeder__GetSequenceFeeder_H
#include <rqt_gui_cpp/plugin.h>
#include <ui_get_sequence_feeder.h>
#include <dirent.h>
#include <image_transport/image_transport.h>
#include <sensor_msgs/Image.h>
#include <opencv2/core/core.hpp>
#include <QImage>
#include <QList>
#include <QMutex>
#include <QString>
#include <QSize>
#include <QWidget>
#include <vector>
namespace rqt_get_sequence_feeder {
class GetSequenceFeeder
: public rqt_gui_cpp::Plugin
{
Q_OBJECT
public:
GetSequenceFeeder();
protected slots:
virtual void onFrameChanged(int);
virtual void readSequenceFile(char *folder,char *sequence,struct dirent *select);
.
.
.
protected:
Ui::GetSequenceFeederWidget ui_;
};
}
而.cpp
如下:
using namespace std;
namespace rqt_get_sequence_feeder {
GetSequenceFeeder::GetSequenceFeeder()
: rqt_gui_cpp::Plugin()
, widget_(0)
{
setObjectName("GetSequenceFeeder");
}
void GetSequenceFeeder::initPlugin(qt_gui_cpp::PluginContext& context)
{
connect(ui_.evaluation_box, SIGNAL(currentIndexChanged(QString)),ui_.sequence_combo_box, SLOT(readSequenceFile(char *,char *,struct dirent *)));
.
.
.
}
void GetSequenceFeeder::readSequenceFile(char *folder ,char *sequenceFile,struct dirent *select)
{
.
.
.
}
我具备的功能readSequenceFile(char *folder,char *sequence,struct dirent *select);
在头文件为protected slots:
我也试过声明为public slot:
声明,没有工作。我不明白我做错了什么。
您是否在'.cpp'文件中有插槽的主体? – 2014-09-03 09:58:31
你的班级里有'Q_OBJECT'宏吗?它似乎在寻找'QComboBox :: readSequenceFile',而不是'YourClass :: readSequenceFile',这表明宏的缺失。除非第一个参数的所有参数都有默认参数,否则无法连接。 – Angew 2014-09-03 10:01:38
@Angew并与'QMapper'?我不得不使用一个,所以我出于好奇而问这个问题。 – 2014-09-03 10:06:48