我在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,如下图所示:
然后,我进行信号和插槽编辑。但是标头文件中定义的广告位(udpateImage
,cameraStart
和cameraControl
)不会出现在广告位列表中,如下图所示:
我在这里错过了其他任何步骤,或者我做错了什么?还注意到QMainWindow
,在这个框架中,这些插槽应该出现,我猜,也不会显示在列表中。
答案 0 :(得分:1)
我知道为什么会这样。要添加这些自定义插槽,除了在标头和实现文件中定义它们之外,还应该先通过右键单击QMainWindow
,转到change signals and slots
并在插槽面板中手动添加它们来添加它们。这种方式比编码信号和插槽更简单。
此处报告了一个类似的问题:my slots don't appear in the signal slot editor