簡體   English   中英

有關SIGNAL / SLOT qt4的問題

[英]Issues regarding SIGNAL/SLOT qt4

我創建了一個GUI,該GUI涉及從一個ComboBox( Evaluation_box )中選擇主題,從而將與該特定主題相關的所有主題加載到另一個ComboBox( sequence_combo_box )中。

用於SIGNAL / SLOT的代碼如下

  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: ,但無效。 我不明白我在做什么錯。

根據您的錯誤消息,您的ui_.sequence_combo_box是一個QComboBox ,並且顯然QComboBox沒有名為readSequenceFile的插槽函數。
ui_.sequence_combo_box應該是繼承QComboBox的類

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM