gpt4 book ai didi

c++ - 实现功能到QT按钮

转载 作者:行者123 更新时间:2023-12-03 07:02:06 30 4
gpt4 key购买 nike

我找不到该问题的任何解决方案。我用qt创建了一个ui,并想为按钮实现一个功能。如果我删除头文件中的按钮,它将起作用。
错误

/usr/bin/ld: CMakeFiles/QT3.dir/QT3_autogen/mocs_compilation.cpp.o: in function MainWindow::qt_metacall(QMetaObject::Call, int, void**)': mocs_compilation.cpp:(.text+0x10a): undefined reference to MainWindow::on_nextStep_clicked()'/usr/bin/ld: CMakeFiles/QT3.dir/QT3_autogen/mocs_compilation.cpp.o: in function MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)': mocs_compilation.cpp:(.text+0x41): undefined reference to MainWindow::on_nextStep_clicked()'


头文件
#ifndef MAINWINDOW3_H_
#define MAINWINDOW3_H_

#include <QMainWindow>
#include <opencv2/highgui/highgui.hpp>
#include <QGraphicsScene>

//QT_BEGIN_NAMESPACE
//namespace Ui { class MainWindow; }
//QT_END_NAMESPACE

namespace Ui {
class MainWindow;
}

class MainWindow: public QMainWindow {
Q_OBJECT

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

signals:

private slots:

// void on_pushButton_5_clicked(); // add Wall
// void on_pushButton_clicked(); // oben
// void on_pushButton_2_clicked(); // links
// void on_pushButton_3_clicked(); // rechts
// void on_pushButton_4_clicked(); // unten

void on_pushButton_clicked();

void on_nextStep_clicked();

private:
Ui::MainWindow *ui;

QGraphicsScene *scene;
protected:
// bool eventFilter(QObject *, QEvent *);
};

#endif /* MAINWINDOW3_H_ */
Cpp文件
#include "mainwindow3.h"
#include "ui_mainwindow.h"

#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsItem>
#include <QDebug>
#include <QMouseEvent>
#include <QObject>

#include <iostream>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this);

scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);

// ui->graphicsView->installEventFilter(this);
}
MainWindow::~MainWindow() {
delete ui;
}

void MainWindow::on_pushButton_clicked() {
std::cout << "add btn clicked()" << std::endl;
}

最佳答案

插槽只是Qt中用于异步事件的另一种方法
如果您在标题中定义:

void on_nextStep_clicked();
那么您需要在cpp中实现:
void MainWindow::on_nextStep_clicked()
{
qDebug() << "Hallo Welt!";
qDebug() << "on_nextStep_clicked()";
}

关于c++ - 实现功能到QT按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64371434/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com