Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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
C++ 声明在Qt中鼠标事件ocurr时调用的函数_C++_Qt_Mouseevent_Qpainter - Fatal编程技术网

C++ 声明在Qt中鼠标事件ocurr时调用的函数

C++ 声明在Qt中鼠标事件ocurr时调用的函数,c++,qt,mouseevent,qpainter,C++,Qt,Mouseevent,Qpainter,我是Qt的初学者,当我运行以下代码时,我发现以下错误: 没有在类“MainWindow”中声明的void MainWindow::MousePresseEvent(QMouseEvent*f)成员函数 没有在类“MainWindow”中声明的void MainWindow::paintEvent(QPaintEvent*e)成员函数 代码写在main.cpp文件中,我没有在mainwindow.cpp或mainwindow.h Qt代码: #include <QtGui/QApplic

我是Qt的初学者,当我运行以下代码时,我发现以下错误:

  • 没有在类“MainWindow”中声明的void MainWindow::MousePresseEvent(QMouseEvent*f)成员函数
  • 没有在类“MainWindow”中声明的void MainWindow::paintEvent(QPaintEvent*e)成员函数
代码写在
main.cpp
文件中,我没有在
mainwindow.cpp
mainwindow.h
Qt代码:

#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QEvent>
#include <QMouseEvent>
#include <QPainter>
void MainWindow::mousePressEvent(QMouseEvent *f)
{
    QPoint point=f->pos();
    int y=1;
    update();
}
void MainWindow::paintEvent(QPaintEvent *e)
{
    int y;
    QPoint point;
    QPainter painter(this);
    QPen linepen(Qt::red);
    linepen.setCapStyle(Qt::RoundCap);
    linepen.setWidth(30);
    painter.setRenderHint(QPainter::Antialiasing,true);
    painter.setPen(linepen);
    if(y==1)
        painter.drawPoint(point);

}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;

w.show();
return a.exec();
}
#包括
#包括“mainwindow.h”
#包括
#包括
#包括
void主窗口::MousePresseEvent(QMouseEvent*f)
{
QPoint point=f->pos();
int y=1;
更新();
}
void主窗口::paintEvent(QPaintEvent*e)
{
int-y;
点;
油漆工(本);
QPen linepen(Qt::红色);
linepen.setCapStyle(Qt::RoundCap);
linepen.setWidth(30);
painter.setRenderHint(QPainter::抗锯齿,true);
画师:设置笔(线条笔);
如果(y==1)
绘制点(点);
}
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
主窗口w;
w、 show();
返回a.exec();
}
标题中的内容应为:

protected:

void mousePressEvent(QMouseEvent *f);
void paintEvent(QPaintEvent *e);
包括:

#include <QMouseEvent>
#include <QPaintEvent>
#包括
#包括
您还应该在
main window.cpp
paintEvent
,以及其他成员函数)中编写代码。如果您将有许多类,那么您的
main.cpp
可能很难阅读