MyTetra Share
Делитесь знаниями!
Короткий пример переопределения события QPaintEvent
Время создания: 20.03.2016 22:41
Текстовые метки: Qt, QPaintEvent, переопределение, отрисовка виджета
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Графика
Запись: xintrea/mytetra_syncro/master/base/1440968995oqqjhkjhed/text.html на raw.github.com

Создан виджет "Машина", и он просто перемещается по экрану:



void Machine::paintEvent(QPaintEvent*) {

QPainter painter(this);

QRect geo = this->geometry();


int x, y, width, height;


x = geo.x()-10;

y = geo.y()-10;

width = geo.width()-3;

height = geo.height()-5;


painter.fillRect(x, y, width, height, QColor(220,220,220));


painter.drawText(x+10, y+10, "Machine " + QString::number(id));

}


Здесь есть какая-то проблема с относительной системой координат:





В обсуждении этой проблемы рекомендуют воспользоваться следующим кодом:


void Machine::paintEvent(QPaintEvent*) {

QPainter painter(this);


int width = size().width() - 3;

int height = size().height() - 5;


painter.fillRect(0, 0, width, height, QColor(220,220,220));

painter.drawText(10, 10, "Machine " + QString::number(id));

}


В принципе, общий смысл переопределения события по отрисовки виджета понятен.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования