2014-11-29 4 views
2

Я новичок в Qt, когда я запускаю следующий код, который я получил эти ошибки:Декларирование функции, вызываемые при ocurr событий мыши в Qt

  • не аннулируются MainWindow :: mousePressEvent (QMouseEvent * е) функция-член объявлена ​​в классе «mainwindow».
  • no void void MainWindow :: paintEvent (QPaintEvent * e) функция-член, объявленная в классе 'mainwindow'.

Код написан в 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(); 
} 

ответ

0

В заголовке должно быть:

protected: 

void mousePressEvent(QMouseEvent *f); 
void paintEvent(QPaintEvent *e); 

И включает:

#include <QMouseEvent> 
#include <QPaintEvent> 

Также вы должны написать свой код в mainwindow.cpp (paintEvent и другие функции-члены). Если у вас будет много классов, то ваш main.cpp может быть очень удобочитаемым.

+0

Спасибо, что это сработало. –

Смежные вопросы