QT
paintEvent
mousePressEvent
void MyWidget::mousePressEvent(QMouseEvent *ev){
_ptClicked = ev->pos();
update();
}
QPainter
void MyWidget::paintEvent(QPaintEvent *){
QPainter painter(this);
painter.setPen(QColor(255,0,0));
painter.setBrush(QBrush(QColor(255,255,0)));
painter.drawLine(QPoint(0,0),QPoint(100,100));
painter.drawText(100,100,"hhhhh");
painter.drawEllipse(QPoint(200,200),30,30);
}
信号槽机制
#include <QObject>
class Newspaper : public QObject
{
Q_OBJECT
public:
Newspaper(const QString & name) :
m_name(name)
{
}
void send()
{
emit newPaper(m_name);
}
signals:
void newPaper(const QString &name);
private:
QString m_name;
};
#include <QObject>
#include <QDebug>
class Reader : public QObject
{
Q_OBJECT
public:
Reader() {}
void receiveNewspaper(const QString & name)
{
qDebug() << "Receives Newspaper: " << name;
}
};
#include <QCoreApplication>
#include "newspaper.h"
#include "reader.h"
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
Newspaper newspaper("Newspaper A");
Reader reader;
QObject::connect(&newspaper, &Newspaper::newPaper,
&reader, &Reader::receiveNewspaper);
newspaper.send();
return app.exec();
}