我在 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,我为用户界面设计了一个菜单栏。 QAction一共有三个,如下图所示:
然后,我进行信号和插槽编辑。但是头文件中定义的槽位(
udpateImage
、 cameraStart
和 cameraControl
)并没有出现在槽位列表中,如下图:我在这里错过了其他任何步骤还是我做错了什么?还注明
QMainWindow
,我想这些插槽应该显示在哪些框架中,也没有显示在列表中。
最佳答案
我知道为什么会这样。要添加这些自定义槽,除了在头文件和实现文件中定义它们之外,还应该通过右键单击 QMainWindow
预先添加它们。 , 前往 change signals and slots
并在插槽面板中手动添加它们。这种方式比编码信号和时隙更简单。
这里已经报告了类似的问题:my slots don't appear in the signal slot editor
关于Qt:信号和插槽编辑中没有显示定义的插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48796576/