Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt:Signal&;中未显示定义的插槽;时隙编辑_Qt - Fatal编程技术网

Qt:Signal&;中未显示定义的插槽;时隙编辑

Qt:Signal&;中未显示定义的插槽;时隙编辑,qt,Qt,我在我的mainwindow.h中声明了三个插槽,并在实现文件中给出了它们的定义。以下是主窗口类: class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); signals: void nextImage(int direction); private slots: void upd

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

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,我为用户界面设计了一个菜单栏。QAction有三种,如下图所示:

然后,我做信号和插槽编辑。但是头文件中定义的插槽(
udpateImage
cameraStart
cameraControl
)不会出现在插槽列表中,如下图所示:


我有没有错过其他步骤,或者我做错了什么?还需要注意的是,列表中也没有显示这些插槽应该显示在的框架中。

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


这里报告了一个类似的问题:

据我所知,定制插槽从未在设计器的信号和插槽编辑器中显示。你没有做错什么。您只需使用
connect()
正常连接信号和插槽。我不这么认为。我有另一个书面项目,在头文件中有私有的用户定义的插槽,这些插槽可以在这样的插槽列表中查找。我只是想知道为什么要这样做。这有帮助吗?尝试公开老虎机,看看这是否有帮助。设计师不显示私人插槽是有道理的。@hyde:设置公共插槽没有任何区别。永久连接似乎很舒服。我想编程连接是多功能的,能够根据需要连接和断开连接。