Witam. przy kompilacji pojawiaja sie takie bledy:
Kod:
C:/Users/MMarcin/Documents/LGM/zad3/MyWidget.cpp:4: error: 'img' was not declared in this scope
C:/Users/MMarcin/Documents/LGM/zad3/MyWidget.cpp:5: error: 'czysc' was not declared in this scope
C:/Users/MMarcin/Documents/LGM/zad3/MyWidget.cpp:10: error: no 'void MyWidget::paintEvent(QPaintEvent*)' member function declared in class 'MyWidget'
C:/Users/MMarcin/Documents/LGM/zad3/MyWidget.cpp:22: error: no 'void MyWidget::mousePressEvent(QMouseEvent*)' member function declared in class 'MyWidget'
C:/Users/MMarcin/Documents/LGM/zad3/MyWidget.cpp:33: error: no 'void MyWidget::czysc()' member function declared in class 'MyWidget'
C:/Users/MMarcin/Documents/LGM/zad3/MyWidget.cpp:46: error: no 'void MyWidget::ustawpiksel(int, int)' member function declared in class 'MyWidget'
C:/Users/MMarcin/Documents/LGM/zad3/MyWidget.cpp:57: error: no 'void MyWidget::rysodc(int, int, int, int)' member function declared in class 'MyWidget'
a oto kod :
MyWidget.h powrzucalem duzo bibliotek bo myslalem ze ktorejs brakuje
Kod:
#include <QPainter>
#include <QWidget>
#include <QMouseEvent>
#include <iostream>
#include <QPushButton>
#include <QLabel>
#include <QtGui>
#include <QPaintEvent>
#include <QApplication>
class MyWidget:QWidget{
public:
MyWidget();
private:
QPushButton *b1;
};
MyWidget.cpp
Kod:
#include "MyWidget.h"
MyWidget::MyWidget(){
img = new QImage(700,700,QImage::Format_RGB32); //format kolorow
czysc();
}
void MyWidget::paintEvent(QPaintEvent*){ //rysowanie lini
QPainter p(this);
// p.drawLine(p1->x(),p1->y(),100,100);
/*
p.drawLine(100,0,100,100); //rysowanie lini od (100,0) do (100,100)
p.drawLine(100,100,200,100);
p.drawLine(200,0,200,100);
*/
p.drawImage(0,0,*img);
}
void MyWidget::mousePressEvent(QMouseEvent *event){
if(event->button()==Qt::RightButton) // czy klikniecie ppm
// p1=new QPoint(event->x(), event->y());
ustawpiksel(event->y(), event->x());
if(event->button()==Qt::LeftButton) // czy klikniecie lpm
// p1=new QPoint(event->x(), event->y());
rysodc(200,200,event->y(), event->x());
update();
}
void MyWidget::czysc(){ //ustawienia koloru
unsigned char *ptr;
ptr = img->bits();
int i,j;
for (i=0;i<700;i++){
for (j=0;j<700;j++){
ptr[700*4*i+4*j]=255;
ptr[700*4*i+4*j+1]=0;
ptr[700*4*i+4*j+2]=0;
}
}
}
void MyWidget::ustawpiksel(int x, int y){ //ustawia piksele
unsigned char *ptr;
ptr = img->bits();
ptr[700*4*x+4*y]=100;
ptr[700*4*x+4*y+1]=100;
ptr[700*4*x+4*y+2]=100;
update();
}
void MyWidget::rysodc(int x0, int y0, int x1, int y1){ //rysuje odcinek
double m,y,x;
int i, tmp, tmp1;
if (x0>x1){ //rysowanie tez na gorze
tmp=y0;
y0=y1;
y1=tmp;
tmp1=x0;
x0=x1;
x1=tmp1;
}
m=(double)(y1-y0)/(x1-x0);
y=y0;
if (abs(m)<=1){
if(x0>x1){
tmp=y0;
y0=y1;
y1=tmp;
tmp1=x0;
x0=x1;
x1=tmp1;
}
for (i=x0; i<x1; i++){
y+=m;
MyWidget:: ustawpiksel(i , (int)y);
}
}
else{if (y0>y1){
tmp=y0;
y0=y1;
y1=tmp;
tmp1=x0;
x0=x1;
x1=tmp1;
}
m=1/m;
for (i=y0; i<y1; i++){
x+=m;
MyWidget::ustawpiksel(i ,(int)x);
}
}
}
Main.h
Kod:
#include "MyWidget.h"
int main(int argc, char **argv){
QApplication a(argc,argv);
MyWidget m;
m.show();
return a.exec();
}