jmalicke
4th March 2016, 21:11
We want to paint some custom rectangles and then put a QPushButton in them.
11779
Let's say we want to put the QPushButton in the top rectangle. How do we do it?
Here's our paint event:
void ChannelAxisList::paintEvent(QPaintEvent* pEvent)
{
QPainter painter(this);
QRect rt = pEvent->rect();
painter.setBrush(QBrush(QColor(255, 255, 255, 0)));
painter.setPen(QPen(QColor(255, 255, 255), 1));
rt.setRight(rt.right() - 1);
rt.setBottom(rt.bottom() - 1);
painter.drawRect(rt);
rt.setTopLeft(QPoint(0, 0));
calculateLayout(rt);
painter.setBrush(QBrush(QColor(255, 255, 255, 0)));
painter.setPen(QPen(QColor(255, 255, 255), 1));
painter.drawRect(m_mainRect);
painter.setBrush(QBrush(QColor(255, 0, 0)));
painter.setPen(QPen(QColor(0, 255, 0), 1));
painter.setRenderHint(QPainter::Antialiasing, false);
painter.drawRoundedRect(m_header, 2, 2);
painter.drawRoundedRect(m_list, 2, 2);
}
11779
Let's say we want to put the QPushButton in the top rectangle. How do we do it?
Here's our paint event:
void ChannelAxisList::paintEvent(QPaintEvent* pEvent)
{
QPainter painter(this);
QRect rt = pEvent->rect();
painter.setBrush(QBrush(QColor(255, 255, 255, 0)));
painter.setPen(QPen(QColor(255, 255, 255), 1));
rt.setRight(rt.right() - 1);
rt.setBottom(rt.bottom() - 1);
painter.drawRect(rt);
rt.setTopLeft(QPoint(0, 0));
calculateLayout(rt);
painter.setBrush(QBrush(QColor(255, 255, 255, 0)));
painter.setPen(QPen(QColor(255, 255, 255), 1));
painter.drawRect(m_mainRect);
painter.setBrush(QBrush(QColor(255, 0, 0)));
painter.setPen(QPen(QColor(0, 255, 0), 1));
painter.setRenderHint(QPainter::Antialiasing, false);
painter.drawRoundedRect(m_header, 2, 2);
painter.drawRoundedRect(m_list, 2, 2);
}