Qt:信号和放大器中没有定义的插槽。插槽编辑

时间:2018-02-14 21:31:05

标签: qt

我在mainwindow.h中声明了三个插槽,并在实现文件中给出了它们的定义。这是MainWindow类:

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

signals:
    void nextImage(int direction);

private slots:
    void updateImage(void);
    void cameraControl(void);
    void cameraStart(void);

private:
    Ui::MainWindow *ui;
    CMUCamera *camera;
    ImageProcessing *process;
    RenderImage *renderImage;
    bool saveImgFlg;
    QString path;
};

转到mainwindow.ui,我为用户界面设计了一个菜单栏。有三个QActions,如下图所示: enter image description here

然后,我进行信号和插槽编辑。但是标头文件中定义的广告位(udpateImagecameraStartcameraControl)不会出现在广告位列表中,如下图所示:

enter image description here

我在这里错过了其他任何步骤,或者我做错了什么?还注意到QMainWindow,在这个框架中,这些插槽应该出现,我猜,也不会显示在列表中。

1 个答案:

答案 0 :(得分:1)

我知道为什么会这样。要添加这些自定义插槽,除了在标头和实现文件中定义它们之外,还应该先通过右键单击QMainWindow,转到change signals and slots并在插槽面板中手动添加它们来添加它们。这种方式比编码信号和插槽更简单。

此处报告了一个类似的问题:my slots don't appear in the signal slot editor