drawPixmap Problem [gelöst]
Verfasst: 20. September 2007 09:54
Hallo!
ich möchte z.b. einen Kreis auf dem Bildschirm darstellen und ihn gleichzeitig in einem Puffer ablegen, damit falls was verdeckt wird, er später auch wieder da ist. nur leider hab ich keinen plan, was ich hier falsch mach. bitte helft mir :/
die klassen header:
und das hauptprogramm:
der fehler:
bin für jede hilfe dankbar!
dnm
ich möchte z.b. einen Kreis auf dem Bildschirm darstellen und ihn gleichzeitig in einem Puffer ablegen, damit falls was verdeckt wird, er später auch wieder da ist. nur leider hab ich keinen plan, was ich hier falsch mach. bitte helft mir :/
die klassen header:
Code: Alles auswählen
#include <QObject>
#include <QPixmap>
#ifndef CLASS_H
#define CLASS_H
class meinfenster : public QWidget {
public:
meinfenster(QWidget * parent =0 );
};
class zeichenf : public QWidget {
Q_OBJECT
public:
zeichenf(QWidget *parent = 0);
protected:
virtual void paintEvent(QPaintEvent *);
public slots:
void startstoprs232(void);
private:
QPixmap *offscreen;
};
#endif CLASS_HCode: Alles auswählen
#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QObject>
#include <QPainter>
//#include <QSlider>
//#include <QLCDNumber>
#include <QVBoxLayout>
#include <QPaintEvent>
#include <QFrame>
#include <QMenu>
#include <QPixmap>
#include "moc_class.cpp"
int onoff;
zeichenf::zeichenf(QWidget * parent) : QWidget(parent){
offscreen = new QPixmap(800,800);
offscreen->fill( Qt::white );
update();
}
void zeichenf::startstoprs232(void){
if(onoff)
onoff=0;
else
onoff=1;
update();
}
void zeichenf::paintEvent(QPaintEvent *){
QPainter painter(offscreen);
painter.begin( this );
//QBrush brush( Qt::blue );
painter.drawText(200, 100,tr("Angle = ") + QString::number(onoff));
painter.setPen( Qt::blue );
painter.drawText(200, 100,tr("Angle = ") + QString::number(20));
painter.drawPoint(80,80);
painter.drawEllipse(30,30,10,10);
painter.drawPixmap(QPoint(0,0), offscreen);
painter.end();
}
meinfenster::meinfenster(QWidget * parent):QWidget(parent){
setFixedSize(800, 600);
zeichenf * screen = new zeichenf;
QPushButton * b1=new QPushButton("quit",this);
connect(b1,SIGNAL(clicked()),qApp,SLOT(quit()));
QPushButton * rs232 = new QPushButton ("Read", this);
connect(rs232,SIGNAL(clicked()),screen,SLOT(startstoprs232()));
QGridLayout *gridLayout = new QGridLayout;
gridLayout->addWidget(b1, 0, 0);
gridLayout->addWidget(rs232, 1, 0);
gridLayout->addWidget(screen, 1, 1, 2, 1);
gridLayout->setColumnStretch(1, 10);
setLayout(gridLayout);
}
int main(int argc, char *argv[]){
onoff = 0;
QApplication app(argc, argv);
meinfenster einfenster(0);
einfenster.show();
int result = app.exec();
return result;
}
Code: Alles auswählen
In Datei, eingefügt von moc_class.cpp:10,
von main.cpp:13:
class.h:23:8: Warnung: mehrere Token am Ende der Direktive #endif
main.cpp: In member function »virtual void zeichenf::paintEvent(QPaintEvent*)«:
main.cpp:44: Fehler: keine passende Funktion für Aufruf von »QPainter::drawPixmap(QPoint, QPixmap*&)«
/usr/include/qt4/QtGui/qpainter.h:310: Anmerkung: Kandidaten sind: void QPainter::drawPixmap(const QRectF&, const QPixmap&, const QRectF&)
/usr/include/qt4/QtGui/qpainter.h:696: Anmerkung: void QPainter::drawPixmap(const QRect&, const QPixmap&, const QRect&)
/usr/include/qt4/QtGui/qpainter.h:727: Anmerkung: void QPainter::drawPixmap(int, int, int, int, const QPixmap&, int, int, int, int)
/usr/include/qt4/QtGui/qpainter.h:733: Anmerkung: void QPainter::drawPixmap(int, int, const QPixmap&, int, int, int, int)
/usr/include/qt4/QtGui/qpainter.h:738: Anmerkung: void QPainter::drawPixmap(const QPointF&, const QPixmap&, const QRectF&)
/usr/include/qt4/QtGui/qpainter.h:743: Anmerkung: void QPainter::drawPixmap(const QPoint&, const QPixmap&, const QRect&)
/usr/include/qt4/QtGui/qpainter.h:701: Anmerkung: void QPainter::drawPixmap(const QPointF&, const QPixmap&)
/usr/include/qt4/QtGui/qpainter.h:706: Anmerkung: void QPainter::drawPixmap(const QPoint&, const QPixmap&)
/usr/include/qt4/QtGui/qpainter.h:716: Anmerkung: void QPainter::drawPixmap(int, int, const QPixmap&)
/usr/include/qt4/QtGui/qpainter.h:711: Anmerkung: void QPainter::drawPixmap(const QRect&, const QPixmap&)
/usr/include/qt4/QtGui/qpainter.h:721: Anmerkung: void QPainter::drawPixmap(int, int, int, int, const QPixmap&)
make: *** [main.o] Fehler 1bin für jede hilfe dankbar!
dnm